List of usage examples for org.springframework.util ReflectionUtils makeAccessible
@SuppressWarnings("deprecation") public static void makeAccessible(Field field)
From source file:org.kaleidofoundry.spring.context.BeanContextPostProcessor.java
@Override public Object postProcessBeforeInitialization(final Object beanInstance, final String beanName) throws BeansException { Set<Field> fields = ReflectionHelper.getAllDeclaredFields(beanInstance.getClass()); for (Field field : fields) { // @Autowired is injected using spring bean if (field.isAnnotationPresent(Context.class) && !field.isAnnotationPresent(Autowired.class) && !field.isAnnotationPresent(Inject.class)) { final Context context = field.getAnnotation(Context.class); // do field is a runtime context class if (field.getType().isAssignableFrom(RuntimeContext.class)) { ReflectionUtils.makeAccessible(field); ReflectionUtils.setField(field, beanInstance, RuntimeContext.createFrom(context, field.getName(), field.getDeclaringClass())); }/*from w ww.ja va2 s .c om*/ // does the plugin interface have a provider specify else if (field.getType().isAnnotationPresent(Provider.class)) { try { ReflectionUtils.makeAccessible(field); Object fieldValue = field.get(beanInstance); if (fieldValue == null) { // create provider using annotation meta-information final Provider provideInfo = field.getType().getAnnotation(Provider.class); final Constructor<? extends ProviderService<?>> providerConstructor = provideInfo .value().getConstructor(Class.class); final ProviderService<?> fieldProviderInstance = providerConstructor .newInstance(field.getType()); // invoke provides method with Context annotation meta-informations final Method providesMethod = ReflectionUtils.findMethod(provideInfo.value(), ProviderService.PROVIDES_METHOD, Context.class, String.class, Class.class); // get the provider result fieldValue = ReflectionUtils.invokeMethod(providesMethod, fieldProviderInstance, context, field.getName(), field.getType()); // set the field that was not yet injected ReflectionUtils.setField(field, beanInstance, fieldValue); } } catch (IllegalArgumentException e) { throw new BeanCreationException("Unexpected error during injection", e); } catch (IllegalAccessException e) { throw new BeanCreationException("Unexpected error during injection", e); } catch (SecurityException e) { throw new BeanCreationException("Unexpected error during injection", e); } catch (NoSuchMethodException e) { throw new BeanCreationException("Unexpected error during injection", e); } catch (InstantiationException e) { throw new BeanCreationException("Unexpected error during injection", e); } catch (InvocationTargetException ite) { throw new BeanCreationException("", ite.getCause() != null ? ite.getCause() : (ite.getTargetException() != null ? ite.getTargetException() : ite)); } finally { } } } } return beanInstance; }
From source file:com.ciphertool.zodiacengine.dao.WordGeneDaoTest.java
@Test public void testSetWordMapDao() { WordGeneDao wordGeneDao = new WordGeneDao(); wordGeneDao.setWordMapDao(wordMapDaoMock); Field wordMapDaoField = ReflectionUtils.findField(WordGeneDao.class, "wordMapDao"); ReflectionUtils.makeAccessible(wordMapDaoField); WordMapDao wordMapDaoFromObject = (WordMapDao) ReflectionUtils.getField(wordMapDaoField, wordGeneDao); assertSame(wordMapDaoMock, wordMapDaoFromObject); }
From source file:com.ryantenney.metrics.spring.InjectMetricAnnotationBeanPostProcessor.java
@Override public Object postProcessAfterInitialization(final Object bean, String beanName) { final Class<?> targetClass = AopUtils.getTargetClass(bean); ReflectionUtils.doWithFields(targetClass, new FieldCallback() { @Override//from w w w . java 2s.c om public void doWith(Field field) throws IllegalAccessException { final InjectMetric annotation = field.getAnnotation(InjectMetric.class); final String metricName = Util.forInjectMetricField(targetClass, field, annotation); final Class<?> type = field.getType(); Metric metric = null; if (Meter.class == type) { metric = metrics.meter(metricName); } else if (Timer.class == type) { metric = metrics.timer(metricName); } else if (Counter.class == type) { metric = metrics.counter(metricName); } else if (Histogram.class == type) { metric = metrics.histogram(metricName); } else { throw new IllegalStateException("Cannot inject a metric of type " + type.getCanonicalName()); } ReflectionUtils.makeAccessible(field); ReflectionUtils.setField(field, bean, metric); LOG.debug("Injected metric {} for field {}.{}", metricName, targetClass.getCanonicalName(), field.getName()); } }, FILTER); return bean; }
From source file:com.ciphertool.genetics.algorithms.ConcurrentMultigenerationalGeneticAlgorithmTest.java
@Test public void testSetTaskExecutor() { TaskExecutor taskExecutorToSet = mock(TaskExecutor.class); ConcurrentMultigenerationalGeneticAlgorithm concurrentMultigenerationalGeneticAlgorithm = new ConcurrentMultigenerationalGeneticAlgorithm(); concurrentMultigenerationalGeneticAlgorithm.setTaskExecutor(taskExecutorToSet); Field taskExecutorField = ReflectionUtils.findField(ConcurrentMultigenerationalGeneticAlgorithm.class, "taskExecutor"); ReflectionUtils.makeAccessible(taskExecutorField); TaskExecutor taskExecutorFromObject = (TaskExecutor) ReflectionUtils.getField(taskExecutorField, concurrentMultigenerationalGeneticAlgorithm); assertSame(taskExecutorToSet, taskExecutorFromObject); }
From source file:com.ciphertool.sentencebuilder.etl.parsers.FrequencyFileParserTest.java
@Test public void testParseFile_InvalidFileName() { FrequencyFileParser frequencyFileParser = new FrequencyFileParser(); frequencyFileParser.setFileName("arbitraryFileName"); Logger logMock = mock(Logger.class); Field logField = ReflectionUtils.findField(FrequencyFileParser.class, "log"); ReflectionUtils.makeAccessible(logField); ReflectionUtils.setField(logField, frequencyFileParser, logMock); List<Word> wordsFromFile = frequencyFileParser.parseFile(); assertTrue(wordsFromFile.isEmpty()); verify(logMock, times(1)).error(anyString(), any(FileNotFoundException.class)); }
From source file:natalia.dymnikova.configuration.ConfigBeanPostProcessor.java
private Field makeAccessible(Field f) { ReflectionUtils.makeAccessible(f); return f; }
From source file:com.ciphertool.genetics.algorithms.crossover.ConservativeUnevaluatedCrossoverAlgorithmTest.java
@Test public void testSetMutateDuringCrossover() { boolean mutateDuringCrossoverToSet = true; ConservativeUnevaluatedCrossoverAlgorithm conservativeUnevaluatedCrossoverAlgorithm = new ConservativeUnevaluatedCrossoverAlgorithm(); conservativeUnevaluatedCrossoverAlgorithm.setMutateDuringCrossover(mutateDuringCrossoverToSet); Field mutateDuringCrossoverField = ReflectionUtils .findField(ConservativeUnevaluatedCrossoverAlgorithm.class, "mutateDuringCrossover"); ReflectionUtils.makeAccessible(mutateDuringCrossoverField); boolean mutateDuringCrossoverFromObject = (boolean) ReflectionUtils.getField(mutateDuringCrossoverField, conservativeUnevaluatedCrossoverAlgorithm); assertEquals(mutateDuringCrossoverToSet, mutateDuringCrossoverFromObject); }
From source file:com.ciphertool.genetics.algorithms.crossover.LowestCommonGroupUnevaluatedCrossoverAlgorithmTest.java
@SuppressWarnings({ "rawtypes", "unchecked" }) @Test/*from w w w. j a v a2 s .com*/ public void testSetMutationAlgorithm() { MutationAlgorithm mutationAlgorithmToSet = mock(MutationAlgorithm.class); LowestCommonGroupUnevaluatedCrossoverAlgorithm lowestCommonGroupUnevaluatedCrossoverAlgorithm = new LowestCommonGroupUnevaluatedCrossoverAlgorithm(); lowestCommonGroupUnevaluatedCrossoverAlgorithm.setMutationAlgorithm(mutationAlgorithmToSet); Field mutationAlgorithmField = ReflectionUtils .findField(LowestCommonGroupUnevaluatedCrossoverAlgorithm.class, "mutationAlgorithm"); ReflectionUtils.makeAccessible(mutationAlgorithmField); MutationAlgorithm mutationAlgorithmFromObject = (MutationAlgorithm) ReflectionUtils .getField(mutationAlgorithmField, lowestCommonGroupUnevaluatedCrossoverAlgorithm); assertSame(mutationAlgorithmToSet, mutationAlgorithmFromObject); }
From source file:com.ciphertool.sentencebuilder.etl.importers.WordListImporterImplTest.java
@Test public void testSetPersistenceBatchSize() { int persistenceBatchSizeToSet = 99; WordListImporterImpl wordListImporterImpl = new WordListImporterImpl(); wordListImporterImpl.setPersistenceBatchSize(persistenceBatchSizeToSet); Field persistenceBatchSizeField = ReflectionUtils.findField(WordListImporterImpl.class, "persistenceBatchSize"); ReflectionUtils.makeAccessible(persistenceBatchSizeField); int persistenceBatchSizeFromObject = (int) ReflectionUtils.getField(persistenceBatchSizeField, wordListImporterImpl);// ww w . ja va2s.com assertEquals(persistenceBatchSizeToSet, persistenceBatchSizeFromObject); }
From source file:org.slf4j.plus.ExceptionLoggerFactoryTests.java
/** * Get max frame length/* w w w. j av a 2s . c om*/ * * @param logger {@link ExceptionLogger} * @return max frame length */ private int getMaxFrameLength(ExceptionLogger logger) { Field field = ReflectionUtils.findField(ExceptionLogger.class, "maxFrameLength"); ReflectionUtils.makeAccessible(field); return (int) ReflectionUtils.getField(field, logger); }