Example usage for org.springframework.beans.factory.config BeanDefinition getBeanClassName

List of usage examples for org.springframework.beans.factory.config BeanDefinition getBeanClassName

Introduction

In this page you can find the example usage for org.springframework.beans.factory.config BeanDefinition getBeanClassName.

Prototype

@Nullable
String getBeanClassName();

Source Link

Document

Return the current bean class name of this bean definition.

Usage

From source file:org.springframework.data.gemfire.config.xml.GemfireDataSourceParser.java

/**
 * {@inheritDoc}/*from w  w  w.ja  v a 2s .c om*/
 */
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanDefinition clientCacheDefinition = new ClientCacheParser().parse(element, parserContext);

    parserContext.getRegistry().registerBeanDefinition(GemfireConstants.DEFAULT_GEMFIRE_CACHE_NAME,
            clientCacheDefinition);

    BeanDefinition poolDefinition = new PoolParser().parse(element, parserContext);

    MutablePropertyValues poolProperties = poolDefinition.getPropertyValues();

    if (!element.hasAttribute(SUBSCRIPTION_ENABLED_ATTRIBUTE_NAME)) {
        poolProperties.add(SUBSCRIPTION_ENABLED_PROPERTY_NAME, true);
    }

    parserContext.getRegistry().registerBeanDefinition(GemfireConstants.DEFAULT_GEMFIRE_POOL_NAME,
            poolDefinition);

    if (log.isDebugEnabled()) {
        log.debug(String.format("Registered GemFire ClientCache bean [%1$s] of type [%2$s]%n",
                GemfireConstants.DEFAULT_GEMFIRE_CACHE_NAME, clientCacheDefinition.getBeanClassName()));
    }

    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .genericBeanDefinition(GemfireDataSourcePostProcessor.class);

    builder.addConstructorArgReference(GemfireConstants.DEFAULT_GEMFIRE_CACHE_NAME);

    BeanDefinitionReaderUtils.registerWithGeneratedName(builder.getBeanDefinition(),
            parserContext.getRegistry());

    return null;
}

From source file:org.springframework.data.repository.config.AbstractRepositoryConfigDefinitionParser.java

private Set<String> getRepositoryInterfacesForAutoConfig(S config, ResourceLoader loader,
        ReaderContext reader) {/*from w  w  w. ja v a  2s  .  c  o  m*/

    ClassPathScanningCandidateComponentProvider scanner = new RepositoryComponentProvider(
            config.getRepositoryBaseInterface());
    scanner.setResourceLoader(loader);

    TypeFilterParser parser = new TypeFilterParser(loader.getClassLoader(), reader);
    parser.parseFilters(config.getSource(), scanner);

    Set<BeanDefinition> findCandidateComponents = scanner.findCandidateComponents(config.getBasePackage());

    Set<String> interfaceNames = new HashSet<String>();
    for (BeanDefinition definition : findCandidateComponents) {
        interfaceNames.add(definition.getBeanClassName());
    }

    return interfaceNames;
}

From source file:org.springframework.data.repository.config.AbstractRepositoryConfigDefinitionParser.java

/**
 * Tries to detect a custom implementation for a repository bean by classpath scanning.
 * // w w w.  ja  v  a2 s  .c o  m
 * @param config
 * @param parser
 * @return the {@code AbstractBeanDefinition} of the custom implementation or {@literal null} if none found
 */
private AbstractBeanDefinition detectCustomImplementation(T config, ParserContext parser) {

    // Build pattern to lookup implementation class
    Pattern pattern = Pattern.compile(".*\\." + config.getImplementationClassName());

    // Build classpath scanner and lookup bean definition
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);
    provider.setResourceLoader(parser.getReaderContext().getResourceLoader());
    provider.addIncludeFilter(new RegexPatternTypeFilter(pattern));
    Set<BeanDefinition> definitions = provider.findCandidateComponents(config.getBasePackage());

    if (definitions.size() == 0) {
        return null;
    }

    if (definitions.size() == 1) {
        return (AbstractBeanDefinition) definitions.iterator().next();
    }

    List<String> implementationClassNames = new ArrayList<String>();
    for (BeanDefinition bean : definitions) {
        implementationClassNames.add(bean.getBeanClassName());
    }

    throw new IllegalStateException(String.format(
            "Ambiguous custom implementations detected! Found %s but expected a single implementation!",
            StringUtils.collectionToCommaDelimitedString(implementationClassNames)));
}

From source file:org.springframework.data.repository.config.RepositoryBeanDefinitionBuilder.java

/**
 * Tries to detect a custom implementation for a repository bean by classpath scanning.
 * //from www .  j  a va2  s.co  m
 * @param config
 * @param parser
 * @return the {@code AbstractBeanDefinition} of the custom implementation or {@literal null} if none found
 */
private AbstractBeanDefinition detectCustomImplementation(BeanDefinitionRegistry registry,
        ResourceLoader loader) {

    // Build pattern to lookup implementation class
    Pattern pattern = Pattern.compile(".*\\." + configuration.getImplementationClassName());

    // Build classpath scanner and lookup bean definition
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);
    provider.setResourceLoader(loader);
    provider.addIncludeFilter(new RegexPatternTypeFilter(pattern));

    Set<BeanDefinition> definitions = new HashSet<BeanDefinition>();

    for (String basePackage : configuration.getBasePackages()) {
        definitions.addAll(provider.findCandidateComponents(basePackage));
    }

    if (definitions.isEmpty()) {
        return null;
    }

    if (definitions.size() == 1) {
        return (AbstractBeanDefinition) definitions.iterator().next();
    }

    List<String> implementationClassNames = new ArrayList<String>();
    for (BeanDefinition bean : definitions) {
        implementationClassNames.add(bean.getBeanClassName());
    }

    throw new IllegalStateException(String.format(
            "Ambiguous custom implementations detected! Found %s but expected a single implementation!",
            StringUtils.collectionToCommaDelimitedString(implementationClassNames)));
}

From source file:org.springframework.flex.config.HibernateSerializationConfigPostProcessor.java

private BeanDefinition findMessageBrokerFactoryBeanDefinition(ConfigurableListableBeanFactory beanFactory) {
    if (beanFactory.containsBeanDefinition(BeanIds.MESSAGE_BROKER)) {
        return beanFactory.getBeanDefinition(BeanIds.MESSAGE_BROKER);
    } else {/*from w  w  w.  j  a  va  2  s .c om*/
        for (String beanDefName : beanFactory.getBeanDefinitionNames()) {
            BeanDefinition beanDef = beanFactory.getBeanDefinition(beanDefName);
            if (beanDef.getBeanClassName().equals(MESSAGE_BROKER_FACTORY_BEAN_CLASS_NAME)) {
                return beanDef;
            }
        }
    }
    return null;
}

From source file:org.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.java

private void registerInfrastructureBean(BeanDefinitionRegistry registry, String className) {
    String[] definitionNames = registry.getBeanDefinitionNames();
    for (String definitionName : definitionNames) {
        BeanDefinition definition = registry.getBeanDefinition(definitionName);
        if (className.equals(definition.getBeanClassName())) {
            if (this.logger.isInfoEnabled()) {
                this.logger.info(className + " is already registered and will be used");
            }//from   w w w .j  a  v a2  s  .  c  o m
            return;
        }
    }
    RootBeanDefinition beanDefinition = new RootBeanDefinition(className);
    beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, registry);
}

From source file:org.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.java

/**
 * Register a null channel in the given BeanDefinitionRegistry. The bean name is defined by the constant
 * {@link IntegrationContextUtils#NULL_CHANNEL_BEAN_NAME}.
 *//*  w ww.  j av  a2s  .c o  m*/
private void registerNullChannel(BeanDefinitionRegistry registry) {
    if (registry.containsBeanDefinition(IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME)) {
        BeanDefinition nullChannelDefinition = registry
                .getBeanDefinition(IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME);
        if (NullChannel.class.getName().equals(nullChannelDefinition.getBeanClassName())) {
            return;
        } else {
            throw new IllegalStateException(
                    "The bean name '" + IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME + "' is reserved.");
        }
    } else {
        RootBeanDefinition nullChannelDef = new RootBeanDefinition();
        nullChannelDef.setBeanClassName(IntegrationConfigUtils.BASE_PACKAGE + ".channel.NullChannel");
        BeanDefinitionHolder nullChannelHolder = new BeanDefinitionHolder(nullChannelDef,
                IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME);
        BeanDefinitionReaderUtils.registerBeanDefinition(nullChannelHolder, registry);
    }
}

From source file:org.springframework.integration.config.xml.DefaultConfiguringBeanFactoryPostProcessor.java

private void registerIdGeneratorConfigurer(BeanDefinitionRegistry registry) {
    String listenerClassName = "org.springframework.integration.config.IdGeneratorConfigurer";
    String[] definitionNames = registry.getBeanDefinitionNames();
    for (String definitionName : definitionNames) {
        BeanDefinition definition = registry.getBeanDefinition(definitionName);
        if (listenerClassName.equals(definition.getBeanClassName())) {
            if (logger.isInfoEnabled()) {
                logger.info(listenerClassName + " is already registered and will be used");
            }/*  w  w w . jav  a 2 s  . c  om*/
            return;
        }
    }
    RootBeanDefinition beanDefinition = new RootBeanDefinition(listenerClassName);
    beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, registry);
}

From source file:org.springframework.integration.config.xml.DefaultConfiguringBeanFactoryPostProcessor.java

/**
 * Register a null channel in the given BeanDefinitionRegistry. The bean name is defined by the constant
 * {@link IntegrationContextUtils#NULL_CHANNEL_BEAN_NAME}.
 *//*  ww  w .j a v  a2 s .c  om*/
private void registerNullChannel(BeanDefinitionRegistry registry) {
    if (registry.containsBeanDefinition(IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME)) {
        BeanDefinition nullChannelDefinition = registry
                .getBeanDefinition(IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME);
        if (NullChannel.class.getName().equals(nullChannelDefinition.getBeanClassName())) {
            return;
        } else {
            throw new IllegalStateException(
                    "The bean name '" + IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME + "' is reserved.");
        }
    } else {
        RootBeanDefinition nullChannelDef = new RootBeanDefinition();
        nullChannelDef.setBeanClassName(IntegrationNamespaceUtils.BASE_PACKAGE + ".channel.NullChannel");
        BeanDefinitionHolder nullChannelHolder = new BeanDefinitionHolder(nullChannelDef,
                IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME);
        BeanDefinitionReaderUtils.registerBeanDefinition(nullChannelHolder, registry);
    }
}

From source file:org.springframework.retry.backoff.BackOffPolicySerializationTests.java

@Parameters(name = "{index}: {0}")
public static List<Object[]> policies() {
    List<Object[]> result = new ArrayList<Object[]>();
    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true);
    scanner.addIncludeFilter(new AssignableTypeFilter(BackOffPolicy.class));
    scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Test.*")));
    scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Mock.*")));
    scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Configuration.*")));
    Set<BeanDefinition> candidates = scanner.findCandidateComponents("org.springframework.retry");
    for (BeanDefinition beanDefinition : candidates) {
        try {//from ww  w. j av a 2s.  co m
            result.add(new Object[] { BeanUtils
                    .instantiate(ClassUtils.resolveClassName(beanDefinition.getBeanClassName(), null)) });
        } catch (Exception e) {
            logger.warn("Cannot create instance of " + beanDefinition.getBeanClassName());
        }
    }
    return result;
}