List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory removeBeanDefinition
@Override public void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException
From source file:org.cloudfoundry.reconfiguration.spring.AbstractCloudServiceBeanFactoryPostProcessor.java
private boolean reconfigureBean(DefaultListableBeanFactory beanFactory, Class<?> beanClass, String beanName) { Object serviceConnector = getCloud().getSingletonServiceConnector(beanClass, null); beanFactory.registerSingleton(getServiceBeanName(), serviceConnector); beanFactory.removeBeanDefinition(beanName); beanFactory.registerAlias(getServiceBeanName(), beanName); this.logger.info(String.format("Reconfigured bean %s into singleton service connector %s", beanName, serviceConnector.toString())); return true;//from w ww . j a v a 2 s . c om }
From source file:com.helpinput.spring.registinerceptor.AbstractBeanRegistInterceptor.java
@Override public boolean afterRemove(Class<?> clz, String beanName, String scope, DefaultListableBeanFactory dlbf) { if (getCondition(clz)) { String refBeanName = beanName + beanNameSuffix; if (application_scope.equals(scope)) dlbf.destroyScopedBean(refBeanName); else if (singleton_scope.equals(scope)) dlbf.destroySingleton(refBeanName); dlbf.removeBeanDefinition(refBeanName); return true; }/*from w w w . j a v a2s .co m*/ return false; }
From source file:com.framework.demo.spring.SpeedUpSpringProcessor.java
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (!(beanFactory instanceof DefaultListableBeanFactory)) { log.error("if speed up spring, bean factory must be type of DefaultListableBeanFactory"); return;//from w w w. j a v a 2s. c o m } DefaultListableBeanFactory listableBeanFactory = (DefaultListableBeanFactory) beanFactory; for (String beanName : listableBeanFactory.getBeanDefinitionNames()) { BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); //?? if (needRemove(beanName, beanDefinition)) { listableBeanFactory.removeBeanDefinition(beanName); continue; } //?lazy if (needLazyInit(beanName)) { // beanDefinition.setLazyInit(true); } } }
From source file:cn.guoyukun.spring.SpeedUpSpringProcessor.java
@Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (!(beanFactory instanceof DefaultListableBeanFactory)) { log.error("if speed up spring, bean factory must be type of DefaultListableBeanFactory"); return;/* w w w. j av a2 s . c o m*/ } DefaultListableBeanFactory listableBeanFactory = (DefaultListableBeanFactory) beanFactory; for (String beanName : listableBeanFactory.getBeanDefinitionNames()) { BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); //?? if (needRemove(beanName, beanDefinition)) { listableBeanFactory.removeBeanDefinition(beanName); continue; } //?lazy if (needLazyInit(beanName)) { beanDefinition.setLazyInit(true); } } }
From source file:com.helpinput.spring.BeanRegister.java
public static boolean removeBean(DefaultListableBeanFactory dlbf, BeanInfo beanInfo, String beanName) { BeanDefinition bd = null;//from w ww . ja va 2 s . co m if (!Utils.hasLength(beanName)) if (beanInfo != null) beanName = beanInfo.beanName; if (!Utils.hasLength(beanName)) return false; try { bd = dlbf.getBeanDefinition(beanName); if (bd != null) { //?bean? relativePath?, ?? // BeanRegister.runOnUnregisger(beanName, dlbf); String scope = bd.getScope(); /** * bean?application,singletonbeansession?view? flash? * requestbean, * session,view,flash,requestbeanapplicationbean * application,singletonbean * scopebeanbeanbean */ if (application_scope.equals(scope)) dlbf.destroyScopedBean(beanName); else if (singleton_scope.equals(scope)) dlbf.destroySingleton(beanName); dlbf.removeBeanDefinition(beanName); if (beanInfo != null && beanInfo.beanClass != null && PropertyEditor.class.isAssignableFrom(beanInfo.beanClass)) { ContextHolder.refreshers.remover(beanName); } List<BeanRegistInterceptor> interceptors = ContextHolder.beanRegistIntercpterHolder.getList(); if (Utils.hasLength(interceptors)) { for (BeanRegistInterceptor beanRegistInterceptor : interceptors) { if (beanRegistInterceptor.afterRemove(beanInfo.beanClass, beanName, scope, dlbf)) break; } } logRegist(Info.Removed, (String) bd.getAttribute(relativePath), beanInfo.beanName, scope); return true; } } catch (NoSuchBeanDefinitionException e) { //? BeanDefinition,????beanInfo, return true; } return false; }
From source file:it.cosenonjaviste.alfresco.annotations.processors.runtime.WebScriptConfigurer.java
@Override protected void processBeanDefinition(ConfigurableListableBeanFactory beanFactory, BeanDefinition bd, String beanClassName, String definitionName) throws FatalBeanException { if (beanFactory instanceof DefaultListableBeanFactory) { DefaultListableBeanFactory factory = (DefaultListableBeanFactory) beanFactory; try {//from w ww . j a va2 s . com final WebScript webScript = AnnotationUtils.findAnnotation(Class.forName(beanClassName), WebScript.class); if (webScript != null) { String beanName = webScript.value(); if (StringUtils.hasText(beanName)) { final String webScriptName = "webscript." + beanName + "." + webScript.method().toString().toLowerCase(); factory.removeBeanDefinition(definitionName); factory.registerBeanDefinition(webScriptName, bd); } else { throw new FatalBeanException( String.format("%s is @WebScript annotated, but no value set.", beanClassName)); } } } catch (ClassNotFoundException e) { logger.warn(String.format( "ClassNotFoundException while searching for ChildOf annotation on bean name '%s' of type '%s'. This error is expected on Alfresco Community 4.2.c. for some classes in package 'org.alfresco.repo'", definitionName, beanClassName)); } } else { logger.error(String.format( "Unable to register '%s' as webscript because beanFactory is not instance of 'DefaultListableBeanFactory'", definitionName)); } }
From source file:com.fitbur.testify.di.spring.SpringServiceLocator.java
@Override public void replaceWithConstant(Set<Class<?>> contracts, String name, Object instance) { DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getBeanFactory(); for (Class<?> contract : contracts) { String[] beanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory, contract, true, false);// ww w . j a va2 s. co m for (String beanName : beanNames) { beanFactory.removeBeanDefinition(beanName); } } beanFactory.registerSingleton(name, instance); }
From source file:com.helpinput.spring.refresher.SessiontRefresher.java
@Override public void refresh(ApplicationContext context, Map<Class<?>, ScanedType> scanedClasses) { boolean needRefreshSessionFactory = false; for (Entry<Class<?>, ScanedType> entry : scanedClasses.entrySet()) { if (entry.getValue().getValue() > ScanedType.SAME.getValue() && entry.getKey().getAnnotation(Entity.class) != null) { needRefreshSessionFactory = true; break; }/*from w ww .j av a2s. co m*/ } if (needRefreshSessionFactory) { DefaultListableBeanFactory dlbf = (DefaultListableBeanFactory) ((AbstractApplicationContext) context) .getBeanFactory(); //testUserManager(dlbf); final String sessionFactory = "sessionFactory"; final String annotatedClasses = "annotatedClasses"; final String setSessionFactory = "setSessionFactory"; BeanDefinition oldSessionFactoryDef = dlbf.getBeanDefinition(sessionFactory); if (oldSessionFactoryDef != null) { dlbf.removeBeanDefinition(sessionFactory); MutablePropertyValues propertyValues = oldSessionFactoryDef.getPropertyValues(); PropertyValue oldPropertyValue = propertyValues.getPropertyValue(annotatedClasses); propertyValues.removePropertyValue(annotatedClasses); BeanDefinition newSessionFactoryDef = BeanDefinitionBuilder .rootBeanDefinition(oldSessionFactoryDef.getBeanClassName()).getBeanDefinition(); List<PropertyValue> propertyValueList = newSessionFactoryDef.getPropertyValues() .getPropertyValueList(); propertyValueList.addAll(propertyValues.getPropertyValueList()); propertyValueList.add(new PropertyValue(annotatedClasses, getManageList(dlbf, oldPropertyValue))); dlbf.registerBeanDefinition(sessionFactory, newSessionFactoryDef); SessionFactory sessionFactoryImpl = (SessionFactory) dlbf.getBean(sessionFactory); String[] beanNames = dlbf.getBeanDefinitionNames(); for (String beanName : beanNames) { BeanDefinition beanDefinition = dlbf.getBeanDefinition(beanName); PropertyValues pValues = beanDefinition.getPropertyValues(); if (pValues.getPropertyValue(sessionFactory) != null) { Object theBean = dlbf.getBean(beanName); Method method = Utils.findMethod(theBean, setSessionFactory, sessionFactoryImpl); if (method != null) Utils.InvokedMethod(theBean, method, sessionFactoryImpl); } } } } }
From source file:com.wavemaker.runtime.data.cloudfoundry.CloudFoundryDataServiceBeanFactoryPostProcessor.java
/** * @param defaultListableBeanFactory/* w ww . ja v a2s. c om*/ */ private void processDataSources(DefaultListableBeanFactory defaultListableBeanFactory) { String[] dataSourceBeanNames = defaultListableBeanFactory.getBeanNamesForType(DataSource.class); if (dataSourceBeanNames.length <= 1) { // When there is only 1 DataSource, the provided auto-staging should be sufficient return; } for (String dsBean : dataSourceBeanNames) { if (!dsBean.endsWith(DS_BEAN_SUFFIX)) { continue; } String serviceName = dsBean.substring(0, dsBean.indexOf(DS_BEAN_SUFFIX)); if (!serviceExists(serviceName)) { boolean foundAlias = false; for (String alias : defaultListableBeanFactory.getAliases(dsBean)) { if (serviceExists(alias)) { serviceName = alias; foundAlias = true; break; } } if (!foundAlias) { log.warn("Expected to find a service with the name '" + serviceName + "' but none was found."); continue; } } RdbmsServiceInfo service = this.cloudEnvironment.getServiceInfo(serviceName, RdbmsServiceInfo.class); if (service != null) { defaultListableBeanFactory.removeBeanDefinition(dsBean); DataSource cfDataSource = new RdbmsServiceCreator().createService(service); defaultListableBeanFactory.registerSingleton(dsBean, cfDataSource); } else { log.warn("Service " + serviceName + " exists, but is not an RDBMS service as expected."); } } }
From source file:com.liferay.arkadiko.bean.AKBeanPostProcessor.java
/** * Post process bean factory./*from w ww . ja va 2 s . c om*/ * * @param beanFactory the bean factory * @throws BeansException the beans exception */ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (!(beanFactory instanceof DefaultListableBeanFactory)) { return; } DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) beanFactory; defaultListableBeanFactory.setInstantiationStrategy(this); AutowireCandidateResolver autowireCandidateResolver = defaultListableBeanFactory .getAutowireCandidateResolver(); defaultListableBeanFactory .setAutowireCandidateResolver(new AKAutowireCandidateResolver(autowireCandidateResolver)); for (String beanName : defaultListableBeanFactory.getBeanDefinitionNames()) { BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); if (!(beanDefinition instanceof AbstractBeanDefinition)) { continue; } String className = beanDefinition.getBeanClassName(); if (className == null) { continue; } try { AKBeanDefinition akBeanDefinition = new AKBeanDefinition(this, (AbstractBeanDefinition) beanDefinition, beanName, getServiceRegistry()); defaultListableBeanFactory.removeBeanDefinition(beanName); defaultListableBeanFactory.registerBeanDefinition(beanName, akBeanDefinition); } catch (Exception e) { if (_log.isLoggable(Level.SEVERE)) { _log.log(Level.SEVERE, e.getMessage(), e); } } } }