List of usage examples for org.springframework.beans.factory.config BeanPostProcessor BeanPostProcessor
BeanPostProcessor
From source file:com.example.autoconfigure.initializer.ExampleApplicationContextInitializer.java
@Override public void initialize(ConfigurableApplicationContext applicationContext) { applicationContext.getBeanFactory().registerSingleton("printNamePostProcessor", new BeanPostProcessor() { @Override/*w w w . j ava 2s. c om*/ public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("Initialized bean " + beanName); return bean; } }); }
From source file:com.springsource.open.jms.SharedDatabaseApplication.java
@Bean public BeanPostProcessor jmsPostProcessor() { return new BeanPostProcessor() { @Override/*from w w w. j a v a2 s.c o m*/ public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof JmsTemplate) { JmsTemplate template = (JmsTemplate) bean; template.setReceiveTimeout(200L); template.setSessionTransacted(true); } return bean; } }; }
From source file:com.springsource.open.foo.ListenerApplication.java
@Bean public BeanPostProcessor connectionFactoryPostProcessor(PlatformTransactionManager transactionManager) { return new BeanPostProcessor() { @Override//from ww w . ja v a2s .c o m public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof SimpleRabbitListenerContainerFactory) { ((SimpleRabbitListenerContainerFactory) bean).setTransactionManager(transactionManager); } return bean; } }; }
From source file:jetbrick.template.web.springboot.JetTemplateAutoConfiguration.java
@Bean public BeanPostProcessor autoRegiesterBeanPostProcessor() { return new BeanPostProcessor() { @Override/*from w ww . java 2 s .com*/ public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean != null && bean.getClass() == JetTemplateViewResolver.class) { JetEngine engine = ((JetTemplateViewResolver) bean).getJetEngine(); // Tags engine.getGlobalResolver().registerTags(SpringedTags.class); } return bean; } }; }
From source file:com.github.lothar.security.acl.config.AclConfiguration.java
@Bean public BeanPostProcessor aclStrategyPostProcessor(AclStrategy defaultAclStrategy) { return new BeanPostProcessor() { @Override//from w w w.j a va 2s . com public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof AclStrategyProvider) { AclStrategyProvider aclStrategyProvider = (AclStrategyProvider) bean; aclStrategyProvider.setDefaultStrategy(defaultAclStrategy); logger.debug("Set defaultAclStrategy : {}", defaultAclStrategy); } return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } }; }
From source file:org.sakaiproject.entitybroker.util.spring.BeanCollectorAutoRegistrar.java
public void afterPropertiesSet() throws Exception { log.debug("setAC: " + applicationContext.getDisplayName()); ConfigurableApplicationContext cac = (ConfigurableApplicationContext) applicationContext; ConfigurableBeanFactory cbf = (ConfigurableBeanFactory) cac.getBeanFactory(); cbf.addBeanPostProcessor(new BeanPostProcessor() { @SuppressWarnings("unchecked") public Object postProcessBeforeInitialization(Object bean, String beanName) { if (bean instanceof BeanCollector<?>) { BeanCollector<Object> bc = (BeanCollector<Object>) bean; Class<?> c = bc.getCollectedType(); if (c == null) { throw new IllegalArgumentException("collected type cannot be null"); }/*from ww w . j ava2s . c o m*/ List<Object> l = getAutoRegisteredBeansOfType(c); logCollectedBeanInsertion(beanName, c.getName(), l); bc.setCollectedBeans(l); } else if (bean instanceof BeanMapCollector) { BeanMapCollector bc = (BeanMapCollector) bean; Class<?>[] cArray = bc.getCollectedTypes(); if (cArray == null) { throw new IllegalArgumentException("collected types cannot be null"); } Map<Class<?>, List<?>> collectedBeans = new HashMap<Class<?>, List<?>>(); for (int i = 0; i < cArray.length; i++) { List<Object> l = getAutoRegisteredBeansOfType(cArray[i]); logCollectedBeanInsertion(beanName, cArray[i].getName(), l); collectedBeans.put(cArray[i], l); } bc.setCollectedBeansMap(collectedBeans); } return bean; } public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } }); }
From source file:sample.ClientConfig.java
@Bean BeanPostProcessor gemfireCacheServerReadyBeanPostProcessor(// <5> @Value("${spring.session.data.gemfire.port:" + ServerConfig.SERVER_PORT + "}") final int port) { return new BeanPostProcessor() { public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof PoolFactoryBean || bean instanceof Pool) { Assert.isTrue(waitForCacheServerToStart(ServerConfig.SERVER_HOSTNAME, port), String.format("GemFire Server failed to start [hostname: %1$s, port: %2$d]", ServerConfig.SERVER_HOSTNAME, port)); }/*ww w.j a v a 2s . co m*/ return bean; } public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof PoolFactoryBean || bean instanceof Pool) { try { latch.await(DEFAULT_WAIT_DURATION, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } return bean; } }; }
From source file:org.springframework.cloud.dataflow.server.config.web.WebConfiguration.java
@Bean public BeanPostProcessor relProviderOverridingBeanPostProcessor() { return new BeanPostProcessor() { @Override/*from w w w .j a v a2 s . c o m*/ public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { // Override the RelProvider to DefaultRelProvider // Since DataFlow UI expects DefaultRelProvider to be used, override any // other instance of // DefaultRelProvider (EvoInflectorRelProvider for instance) with the // DefaultRelProvider. if (beanName != null && beanName.equals(REL_PROVIDER_BEAN_NAME)) { return new DefaultRelProvider(); } return bean; } @Override public Object postProcessAfterInitialization(Object bean, String s) throws BeansException { return bean; } }; }
From source file:co.paralleluniverse.common.spring.SpringContainerHelper.java
public static ConfigurableApplicationContext createContext(String defaultDomain, Resource xmlResource, Object properties, BeanFactoryPostProcessor beanFactoryPostProcessor) { LOG.info("JAVA: {} {}, {}", new Object[] { System.getProperty("java.runtime.name"), System.getProperty("java.runtime.version"), System.getProperty("java.vendor") }); LOG.info("OS: {} {}, {}", new Object[] { System.getProperty("os.name"), System.getProperty("os.version"), System.getProperty("os.arch") }); LOG.info("DIR: {}", System.getProperty("user.dir")); final DefaultListableBeanFactory beanFactory = createBeanFactory(); final GenericApplicationContext context = new GenericApplicationContext(beanFactory); context.registerShutdownHook();//from w ww . j a va 2 s. c o m final PropertyPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertyPlaceholderConfigurer(); propertyPlaceholderConfigurer .setSystemPropertiesMode(PropertyPlaceholderConfigurer.SYSTEM_PROPERTIES_MODE_OVERRIDE); if (properties != null) { if (properties instanceof Resource) propertyPlaceholderConfigurer.setLocation((Resource) properties); else if (properties instanceof Properties) propertyPlaceholderConfigurer.setProperties((Properties) properties); else throw new IllegalArgumentException( "Properties argument - " + properties + " - is of an unhandled type"); } context.addBeanFactoryPostProcessor(propertyPlaceholderConfigurer); // MBean exporter //final MBeanExporter mbeanExporter = new AnnotationMBeanExporter(); //mbeanExporter.setServer(ManagementFactory.getPlatformMBeanServer()); //beanFactory.registerSingleton("mbeanExporter", mbeanExporter); context.registerBeanDefinition("mbeanExporter", getMBeanExporterBeanDefinition(defaultDomain)); // inject bean names into components context.addBeanFactoryPostProcessor(new BeanFactoryPostProcessor() { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { for (String beanName : beanFactory.getBeanDefinitionNames()) { try { final BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); if (beanDefinition.getBeanClassName() != null) { // van be null for factory methods final Class<?> beanClass = Class.forName(beanDefinition.getBeanClassName()); if (Component.class.isAssignableFrom(beanClass)) beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(0, beanName); } } catch (Exception ex) { LOG.error("Error loading bean " + beanName + " definition.", ex); throw new Error(ex); } } } }); if (beanFactoryPostProcessor != null) context.addBeanFactoryPostProcessor(beanFactoryPostProcessor); beanFactory.registerCustomEditor(org.w3c.dom.Element.class, co.paralleluniverse.common.util.DOMElementProprtyEditor.class); final Map<String, Object> beans = new HashMap<String, Object>(); beanFactory.addBeanPostProcessor(new BeanPostProcessor() { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { LOG.info("Loading bean {} [{}]", beanName, bean.getClass().getName()); beans.put(beanName, bean); if (bean instanceof Service) { final BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); Collection<String> dependencies = getBeanDependencies(beanDefinition); for (String dependeeName : dependencies) { Object dependee = beanFactory.getBean(dependeeName); if (dependee instanceof Service) { ((Service) dependee).addDependedBy((Service) bean); ((Service) bean).addDependsOn((Service) dependee); } } } return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { LOG.info("Bean {} [{}] loaded", beanName, bean.getClass().getName()); return bean; } }); final XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader((BeanDefinitionRegistry) beanFactory); xmlReader.loadBeanDefinitions(xmlResource); // start container context.refresh(); // Call .postInit() on all Components // There's probably a better way to do this try { for (Map.Entry<String, Object> entry : beans.entrySet()) { final String beanName = entry.getKey(); final Object bean = entry.getValue(); if (bean instanceof Component) { LOG.info("Performing post-initialization on bean {} [{}]", beanName, bean.getClass().getName()); ((Component) bean).postInit(); } } } catch (Exception e) { throw Throwables.propagate(e); } return context; }
From source file:sample.client.Application.java
@Bean BeanPostProcessor gemfireCacheServerAvailabilityBeanPostProcessor( @Value("${gemfire.cache.server.host:localhost}") final String host, @Value("${gemfire.cache.server.port:12480}") final int port) { // <5> return new BeanPostProcessor() { public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof PoolFactoryBean || bean instanceof Pool) { if (!waitForCacheServerToStart(host, port)) { Application.this.logger.warn("No GemFire Cache Server found on [host: {}, port: {}]", host, port);/*w ww . ja v a2 s. co m*/ } } return bean; } public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof PoolFactoryBean || bean instanceof Pool) { try { Assert.state(latch.await(DEFAULT_WAIT_DURATION, TimeUnit.MILLISECONDS), String.format( "GemFire Cache Server failed to start on [host: %1$s, port: %2$d]", host, port)); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } return bean; } }; }