List of usage examples for org.springframework.beans.factory.config ConfigurableListableBeanFactory containsSingleton
boolean containsSingleton(String beanName);
From source file:lodsve.core.condition.ConditionEvaluationReport.java
/** * Obtain a {@link ConditionEvaluationReport} for the specified bean factory. * * @param beanFactory the bean factory/*from ww w.j av a 2 s . c om*/ * @return an existing or new {@link ConditionEvaluationReport} */ public static ConditionEvaluationReport get(ConfigurableListableBeanFactory beanFactory) { synchronized (beanFactory) { ConditionEvaluationReport report; if (beanFactory.containsSingleton(BEAN_NAME)) { report = beanFactory.getBean(BEAN_NAME, ConditionEvaluationReport.class); } else { report = new ConditionEvaluationReport(); beanFactory.registerSingleton(BEAN_NAME, report); } locateParent(beanFactory.getParentBeanFactory(), report); return report; } }
From source file:com.gwtplatform.dispatch.server.spring.utils.SpringUtils.java
private static String generateName(ConfigurableListableBeanFactory registry, RootBeanDefinition definition) { String generatedBeanName = definition.getBeanClassName(); if (generatedBeanName == null) { if (definition.getParentName() != null) { generatedBeanName = definition.getParentName() + "$child"; } else if (definition.getFactoryBeanName() != null) { generatedBeanName = definition.getFactoryBeanName() + "$created"; }//ww w . ja va2 s. c o m } if (!StringUtils.hasText(generatedBeanName)) { throw new BeanDefinitionStoreException("Unnamed bean definition specifies neither " + "'class' nor 'parent' nor 'factory-bean' - can't generate bean name"); } String id = generatedBeanName; // Top-level bean: use plain class name. // Increase counter until the id is unique. int counter = -1; while (counter == -1 || (registry.containsSingleton(id))) { counter++; id = generatedBeanName + "#" + counter; } return id; }
From source file:com.gwtplatform.dispatch.rpc.server.spring.utils.SpringUtils.java
private static String generateName(ConfigurableListableBeanFactory registry, RootBeanDefinition definition) { String generatedBeanName = definition.getBeanClassName(); if (generatedBeanName == null) { if (definition.getParentName() != null) { generatedBeanName = definition.getParentName() + "$child"; } else if (definition.getFactoryBeanName() != null) { generatedBeanName = definition.getFactoryBeanName() + "$created"; }/*from ww w . ja va2s .co m*/ } if (!StringUtils.hasText(generatedBeanName)) { throw new BeanDefinitionStoreException( "Unnamed bean definition specifies neither 'class' nor 'parent' nor 'factory-bean' - can't " + "generate bean name"); } String id = generatedBeanName; // Top-level bean: use plain class name. // Increase counter until the id is unique. int counter = -1; while (counter == -1 || (registry.containsSingleton(id))) { counter++; id = generatedBeanName + "#" + counter; } return id; }
From source file:org.kie.spring.factorybeans.KieImportFactoryBean.java
/** * Register the kie container bean to Spring Context. *//*from w ww . j a va 2 s. c o m*/ private void regesiterKieContainer(ConfigurableListableBeanFactory configurableListableBeanFactory) { if (releaseId != null) { String kContainerBeanName = releaseId.getGroupId() + "#" + releaseId.getArtifactId() + "#" + releaseId.getVersion(); if (!configurableListableBeanFactory.containsSingleton(kContainerBeanName)) { configurableListableBeanFactory.registerSingleton(kContainerBeanName, kContainer); } } }
From source file:org.kie.spring.factorybeans.KieImportFactoryBean.java
protected void registerKieBases(ConfigurableListableBeanFactory configurableListableBeanFactory) { for (String kieBaseName : kContainer.getKieBaseNames()) { if (scannerEnabled) { registerKieBeanDef((BeanDefinitionRegistry) configurableListableBeanFactory, kieBaseName); if (!configurableListableBeanFactory.containsSingleton(releaseIdName + "#scanner")) { configurableListableBeanFactory.registerSingleton(releaseIdName + "#scanner", kieScanner); }//from w w w .jav a2 s . c om } else { KieBase kieBase = kContainer.getKieBase(kieBaseName); configurableListableBeanFactory.registerSingleton(kieBaseName, kieBase); } registerKieSessions(kieBaseName, configurableListableBeanFactory); } }
From source file:org.solmix.runtime.support.spring.ContainerPostProcessor.java
@Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { Object inject = container;//from ww w . j a va2 s .c o m if (inject == null) { inject = getContainerByName(Container.DEFAULT_CONTAINER_ID, beanFactory, true, null); } else { if (!beanFactory.containsBeanDefinition(Container.DEFAULT_CONTAINER_ID) && !beanFactory.containsSingleton(Container.DEFAULT_CONTAINER_ID)) { beanFactory.registerSingleton(Container.DEFAULT_CONTAINER_ID, container); } } for (String beanName : beanFactory.getBeanDefinitionNames()) { BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); Object p = beanDefinition.getAttribute(AbstractBeanDefinitionParser.WIRE_CONTAINER_ATTRIBUTE); if (p == null) continue; String name = (String) beanDefinition.getAttribute(AbstractBeanDefinitionParser.WIRE_CONTAINER_NAME); String create = (String) beanDefinition .getAttribute(AbstractBeanDefinitionParser.WIRE_CONTAINER_CREATE); Object inj = inject; if (name != null) { if (container != null) { continue; } inj = getContainerByName(name, beanFactory, create != null, create); } beanDefinition.removeAttribute(AbstractBeanDefinitionParser.WIRE_CONTAINER_NAME); beanDefinition.removeAttribute(AbstractBeanDefinitionParser.WIRE_CONTAINER_ATTRIBUTE); beanDefinition.removeAttribute(AbstractBeanDefinitionParser.WIRE_CONTAINER_CREATE); if (create == null) { if (Boolean.valueOf(p.toString())) { beanDefinition.getPropertyValues().addPropertyValue("container", inj); } else { ConstructorArgumentValues constructorArgs = beanDefinition.getConstructorArgumentValues(); insertConstructorArg(constructorArgs, inj); } } } //end loop bean. }
From source file:org.springframework.context.annotation.ConfigurationClassPostProcessor.java
/** * Post-processes a BeanFactory in search of Configuration class BeanDefinitions; * any candidates are then enhanced by a {@link ConfigurationClassEnhancer}. * Candidate status is determined by BeanDefinition attribute metadata. * @see ConfigurationClassEnhancer/*from www. jav a 2 s. co m*/ */ public void enhanceConfigurationClasses(ConfigurableListableBeanFactory beanFactory) { Map<String, AbstractBeanDefinition> configBeanDefs = new LinkedHashMap<>(); for (String beanName : beanFactory.getBeanDefinitionNames()) { BeanDefinition beanDef = beanFactory.getBeanDefinition(beanName); if (ConfigurationClassUtils.isFullConfigurationClass(beanDef)) { if (!(beanDef instanceof AbstractBeanDefinition)) { throw new BeanDefinitionStoreException("Cannot enhance @Configuration bean definition '" + beanName + "' since it is not stored in an AbstractBeanDefinition subclass"); } else if (logger.isWarnEnabled() && beanFactory.containsSingleton(beanName)) { logger.warn("Cannot enhance @Configuration bean definition '" + beanName + "' since its singleton instance has been created too early. The typical cause " + "is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor " + "return type: Consider declaring such methods as 'static'."); } configBeanDefs.put(beanName, (AbstractBeanDefinition) beanDef); } } if (configBeanDefs.isEmpty()) { // nothing to enhance -> return immediately return; } ConfigurationClassEnhancer enhancer = new ConfigurationClassEnhancer(); for (Map.Entry<String, AbstractBeanDefinition> entry : configBeanDefs.entrySet()) { AbstractBeanDefinition beanDef = entry.getValue(); // If a @Configuration class gets proxied, always proxy the target class beanDef.setAttribute(AutoProxyUtils.PRESERVE_TARGET_CLASS_ATTRIBUTE, Boolean.TRUE); try { // Set enhanced subclass of the user-specified bean class Class<?> configClass = beanDef.resolveBeanClass(this.beanClassLoader); if (configClass != null) { Class<?> enhancedClass = enhancer.enhance(configClass, this.beanClassLoader); if (configClass != enhancedClass) { if (logger.isDebugEnabled()) { logger.debug(String.format( "Replacing bean definition '%s' existing class '%s' with " + "enhanced class '%s'", entry.getKey(), configClass.getName(), enhancedClass.getName())); } beanDef.setBeanClass(enhancedClass); } } } catch (Throwable ex) { throw new IllegalStateException("Cannot load configuration class: " + beanDef.getBeanClassName(), ex); } } }
From source file:org.springframework.context.support.DefaultLifecycleProcessor.java
/** * Retrieve all applicable Lifecycle beans: all singletons that have already been created, * as well as all SmartLifecycle beans (even if they are marked as lazy-init). * @return the Map of applicable beans, with bean names as keys and bean instances as values *//*from w ww. j a v a2s . c o m*/ protected Map<String, Lifecycle> getLifecycleBeans() { ConfigurableListableBeanFactory beanFactory = getBeanFactory(); Map<String, Lifecycle> beans = new LinkedHashMap<>(); String[] beanNames = beanFactory.getBeanNamesForType(Lifecycle.class, false, false); for (String beanName : beanNames) { String beanNameToRegister = BeanFactoryUtils.transformedBeanName(beanName); boolean isFactoryBean = beanFactory.isFactoryBean(beanNameToRegister); String beanNameToCheck = (isFactoryBean ? BeanFactory.FACTORY_BEAN_PREFIX + beanName : beanName); if ((beanFactory.containsSingleton(beanNameToRegister) && (!isFactoryBean || matchesBeanType(Lifecycle.class, beanNameToCheck, beanFactory))) || matchesBeanType(SmartLifecycle.class, beanNameToCheck, beanFactory)) { Object bean = beanFactory.getBean(beanNameToCheck); if (bean != this && bean instanceof Lifecycle) { beans.put(beanNameToRegister, (Lifecycle) bean); } } } return beans; }