public static AbstractApplicationContext getContextWithPreRegisteredBeans(String id, String displayName, Map<String, ?> beans) { GenericXmlApplicationContext appContext = new GenericXmlApplicationContext(); if (!isBlank(id)) { appContext.setId(id); } if (!isBlank(displayName)) { appContext.setDisplayName(displayName); } appContext.refresh(); ConfigurableListableBeanFactory factory = appContext.getBeanFactory(); for (String beanName : beans.keySet()) { Object bean = beans.get(beanName); logger.debug("Registering bean - [{}] -> [{}]", beanName, bean.getClass().getName()); factory.registerSingleton(beanName, bean); } return appContext; }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Nonnull private ApplicationContext createSpringContext (final @Nonnull Map<String, Object> properties, final @Nonnull Consumer<GenericApplicationContext> modifier, final @Nonnull Collection<String> configurationFiles) { configurationFiles.add(test.getClass().getSimpleName() + "/TestBeans.xml"); final StandardEnvironment environment = new StandardEnvironment(); environment.getPropertySources().addFirst(new MapPropertySource("test", properties)); final GenericXmlApplicationContext context = new GenericXmlApplicationContext(); context.setEnvironment(environment); context.load(configurationFiles.toArray(new String[0])); modifier.accept(context); context.refresh(); log.info("Beans: {}", Arrays.asList(context.getBeanFactory().getBeanDefinitionNames())); return context; }
applicationContext.getBeanFactory().addBeanPostProcessor(processor);
private SpringContextServiceReference load( final String serviceId, final Map<String, String> updatedProperties) { final String configurationPath = serviceDefinition.getMainContextPath(); final String serviceBeanName = serviceDefinition.getServiceBeanName(); final PropertyPlaceholderConfigurer placeholderConfigurer = createPlaceholderConfigurer(); Properties properties = new Properties(); properties.putAll(updatedProperties); properties.put(ServiceConstants.SERVICE_ID_PROPERTY, serviceId); placeholderConfigurer.setProperties(properties); final GenericXmlApplicationContext context = new GenericXmlApplicationContext(); for(Entry<String, BeanPostProcessor> postProcessorEntry: applicationContext.getBeansOfType(BeanPostProcessor.class).entrySet()){ context.getBeanFactory().registerSingleton(postProcessorEntry.getKey(), postProcessorEntry.getValue()); } context.load(configurationPath); context.setParent(applicationContext); context.addBeanFactoryPostProcessor(placeholderConfigurer); context.registerShutdownHook(); context.refresh(); final SpringContextServiceReference serviceReference; if (StringUtils.isNotBlank(serviceBeanName)) { serviceReference = findBeanByName(serviceBeanName, context); } else { serviceReference = findBeanByClass(context); } return serviceReference; }
applicationContext.getBeanFactory().addBeanPostProcessor(processor);
applicationContext.getBeanFactory().addBeanPostProcessor(processor);