Example usage for org.springframework.beans.factory.support BeanDefinitionBuilder rootBeanDefinition

List of usage examples for org.springframework.beans.factory.support BeanDefinitionBuilder rootBeanDefinition

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support BeanDefinitionBuilder rootBeanDefinition.

Prototype

public static BeanDefinitionBuilder rootBeanDefinition(Class<?> beanClass) 

Source Link

Document

Create a new BeanDefinitionBuilder used to construct a RootBeanDefinition .

Usage

From source file:pl.bristleback.server.bristle.conf.namespace.BristlebackSecurityBeanDefinitionParser.java

private void registerSecurityConfigurationBean(Element element, ParserContext parserContext) {
    Integer maxConcurrentConnectionsPerUsername = Integer
            .parseInt(element.getAttribute("maxConcurrentPerUsername"));
    BeanDefinition authenticationConfiguration = BeanDefinitionBuilder
            .rootBeanDefinition(AuthenticationConfiguration.class)
            .addPropertyValue("maximumAuthenticationsPerUsername", maxConcurrentConnectionsPerUsername)
            .getBeanDefinition();//from   ww  w .  j  a  v  a 2s. co  m
    registerBean(parserContext, authenticationConfiguration, "bristleAuthenticationConfiguration");
}

From source file:com.apporiented.spring.override.AbstractGenericBeanDefinitionParser.java

/**
 * Creates a {@link org.springframework.beans.factory.support.BeanDefinitionBuilder} instance for the
 * bean class and passes it to the//from  w w  w.  j  a v a2  s. c om
 * {@link #doParse} strategy method.
 * @param element the element that is to be parsed into a single BeanDefinition
 * @param parserContext the object encapsulating the current state of the parsing process
 * @return the BeanDefinition resulting from the parsing of the supplied {@link org.w3c.dom.Element}
 * @throws IllegalStateException if the bean {@link Class} returned from
 * bean class is <code>null</code>
 * @see #doParse
 */
protected final AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(beanClass);
    builder.getRawBeanDefinition().setSource(parserContext.extractSource(element));
    if (parserContext.isNested()) {
        // Inner bean definition must receive same scope as containing bean.
        builder.setScope(parserContext.getContainingBeanDefinition().getScope());
    }
    if (parserContext.isDefaultLazyInit()) {
        // Default-lazy-init applies to custom bean definitions as well.
        builder.setLazyInit(true);
    }
    builder.setAutowireMode(autowireMode);
    builder.setFactoryMethod(factoryMethod);
    doParse(element, parserContext, builder);
    return builder.getBeanDefinition();
}

From source file:org.springframework.hateoas.config.HypermediaSupportBeanDefinitionRegistrar.java

/**
 * Registers bean definitions for a {@link PluginRegistry} to capture
 * {@link RelProvider} instances. Wraps the registry into a
 * {@link DelegatingRelProvider} bean definition backed by the registry.
 * /*from  ww w  .j  a v a2s .c  o  m*/
 * @param registry
 */
private static void registerRelProviderPluginRegistryAndDelegate(BeanDefinitionRegistry registry) {

    Class<?> defaultRelProviderType = EVO_PRESENT ? EvoInflectorRelProvider.class : DefaultRelProvider.class;
    RootBeanDefinition defaultRelProviderBeanDefinition = new RootBeanDefinition(defaultRelProviderType);
    registry.registerBeanDefinition("defaultRelProvider", defaultRelProviderBeanDefinition);

    RootBeanDefinition annotationRelProviderBeanDefinition = new RootBeanDefinition(
            AnnotationRelProvider.class);
    registry.registerBeanDefinition("annotationRelProvider", annotationRelProviderBeanDefinition);

    BeanDefinitionBuilder registryFactoryBeanBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(PluginRegistryFactoryBean.class);
    registryFactoryBeanBuilder.addPropertyValue("type", RelProvider.class);
    registryFactoryBeanBuilder.addPropertyValue("exclusions", DelegatingRelProvider.class);

    AbstractBeanDefinition registryBeanDefinition = registryFactoryBeanBuilder.getBeanDefinition();
    registry.registerBeanDefinition("relProviderPluginRegistry", registryBeanDefinition);

    BeanDefinitionBuilder delegateBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(DelegatingRelProvider.class);
    delegateBuilder.addConstructorArgValue(registryBeanDefinition);

    AbstractBeanDefinition beanDefinition = delegateBuilder.getBeanDefinition();
    beanDefinition.setPrimary(true);
    registry.registerBeanDefinition(DELEGATING_REL_PROVIDER_BEAN_NAME, beanDefinition);
}

From source file:org.springframework.cloud.aws.messaging.listener.QueueMessageHandlerTest.java

private AbstractBeanDefinition getQueueMessageHandlerBeanDefinition() {
    BeanDefinitionBuilder queueMessageHandlerBeanDefinitionBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(QueueMessageHandler.class);
    ManagedList<HandlerMethodReturnValueHandler> returnValueHandlers = new ManagedList<>(1);
    returnValueHandlers.add(new SendToHandlerMethodReturnValueHandler(this.messageTemplate));
    queueMessageHandlerBeanDefinitionBuilder.addPropertyValue("returnValueHandlers", returnValueHandlers);
    return queueMessageHandlerBeanDefinitionBuilder.getBeanDefinition();
}

From source file:pl.bristleback.server.bristle.conf.namespace.BristlebackSecurityBeanDefinitionParser.java

private void addInterceptorBeans(ParserContext parserContext) {
    BeanDefinition authenticationInterceptor = BeanDefinitionBuilder
            .rootBeanDefinition(AuthenticationInterceptor.class).getBeanDefinition();
    registerBean(parserContext, authenticationInterceptor, "bristleAuthenticationInterceptor");

    BeanDefinition authenticationInterceptorContextResolver = BeanDefinitionBuilder
            .rootBeanDefinition(AuthenticationInterceptorContextResolver.class).getBeanDefinition();
    registerBean(parserContext, authenticationInterceptorContextResolver,
            "bristleAuthenticationInterceptorContextResolver");

    BeanDefinition logoutInterceptor = BeanDefinitionBuilder.rootBeanDefinition(LogoutInterceptor.class)
            .getBeanDefinition();/*from   w w  w . j  a v  a 2 s .c  o  m*/
    registerBean(parserContext, logoutInterceptor, "bristleLogoutInterceptor");

}

From source file:com.dangdang.ddframe.job.spring.namespace.parser.common.AbstractJobBeanDefinitionParser.java

private List<BeanDefinition> createJobListeners(final Element element) {
    List<Element> listenerElements = DomUtils.getChildElementsByTagName(element, LISTENER_TAG);
    List<BeanDefinition> result = new ManagedList<>(listenerElements.size());
    for (Element each : listenerElements) {
        String className = each.getAttribute(CLASS_ATTRIBUTE);
        BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(className);
        factory.setScope(BeanDefinition.SCOPE_PROTOTYPE);
        try {//  www.j a v a2  s  . c  o  m
            Class listenerClass = Class.forName(className);
            if (AbstractDistributeOnceElasticJobListener.class.isAssignableFrom(listenerClass)) {
                factory.addConstructorArgValue(each.getAttribute(STARTED_TIMEOUT_MILLISECONDS_ATTRIBUTE));
                factory.addConstructorArgValue(each.getAttribute(COMPLETED_TIMEOUT_MILLISECONDS_ATTRIBUTE));
            }
        } catch (final ClassNotFoundException ex) {
            throw new RuntimeException(ex);
        }
        result.add(factory.getBeanDefinition());
    }
    return result;
}

From source file:org.synyx.hades.dao.config.DaoConfigDefinitionParser.java

/**
 * Registers a {@code GenericDaoFactoryBean} for a bean with the given name
 * and the provided configuration context. It is mainly used to construct
 * bean name, entity class name and DAO interface name.
 * //from  www . j  a  va  2 s  .com
 * @param parserContext
 * @param name
 * @param context
 */
private void registerGenericDaoFactoryBean(final ParserContext parserContext, final DaoContext context) {

    Object beanSource = parserContext.extractSource(context.getElement());

    BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(context.getDaoFactoryClassName());

    beanDefinitionBuilder.addPropertyValue("daoInterface", context.getInterfaceName());
    beanDefinitionBuilder.addPropertyValue("queryLookupStrategy", context.getQueryLookupStrategy());

    String entityManagerRef = context.getEntityManagerFactoryRef();

    if (null != entityManagerRef) {
        beanDefinitionBuilder.addPropertyValue("entityManager",
                getEntityManagerBeanDefinitionFor(entityManagerRef, beanSource));
    }

    beanDefinitionBuilder.addPropertyValue("transactionManager", context.getTransactionManagerRef());

    String customImplementationBeanName = registerCustomImplementation(context, parserContext, beanSource);

    if (customImplementationBeanName != null) {
        beanDefinitionBuilder.addPropertyReference("customDaoImplementation", customImplementationBeanName);
    }

    AbstractBeanDefinition beanDefinition = beanDefinitionBuilder.getBeanDefinition();
    beanDefinition.setSource(beanSource);

    LOG.debug("Registering Hades DAO: {} - DAO interface: {} - Factory: {} - Custom implementation: {}",
            new Object[] { context.getBeanName(), context.getInterfaceName(), context.getDaoFactoryClassName(),
                    customImplementationBeanName });

    BeanComponentDefinition definition = new BeanComponentDefinition(beanDefinition, context.getBeanName());

    parserContext.registerBeanComponent(definition);
}

From source file:com.dangdang.ddframe.rdb.sharding.spring.namespace.parser.ShardingJdbcDataSourceBeanDefinitionParser.java

private List<BeanDefinition> parseBindingTablesConfig(final Element element) {
    Element bindingTableRulesElement = DomUtils.getChildElementByTagName(element,
            ShardingJdbcDataSourceBeanDefinitionParserTag.BINDING_TABLE_RULES_TAG);
    if (null == bindingTableRulesElement) {
        return Collections.emptyList();
    }/*from w  w w.jav a 2 s  .  com*/
    List<Element> bindingTableRuleElements = DomUtils.getChildElementsByTagName(bindingTableRulesElement,
            ShardingJdbcDataSourceBeanDefinitionParserTag.BINDING_TABLE_RULE_TAG);
    BeanDefinitionBuilder bindingTableRuleFactory = BeanDefinitionBuilder
            .rootBeanDefinition(BindingTableRuleConfig.class);
    List<BeanDefinition> result = new ManagedList<>(bindingTableRuleElements.size());
    for (Element bindingTableRuleElement : bindingTableRuleElements) {
        bindingTableRuleFactory.addPropertyValue("tableNames", bindingTableRuleElement
                .getAttribute(ShardingJdbcDataSourceBeanDefinitionParserTag.LOGIC_TABLES_ATTRIBUTE));
        result.add(bindingTableRuleFactory.getBeanDefinition());
    }
    return result;
}

From source file:com.dangdang.ddframe.job.lite.spring.namespace.parser.common.AbstractJobBeanDefinitionParser.java

private BeanDefinition createJobEventConfig(final Element element) {
    String eventTraceDataSourceName = element.getAttribute(EVENT_TRACE_RDB_DATA_SOURCE_ATTRIBUTE);
    if (Strings.isNullOrEmpty(eventTraceDataSourceName)) {
        return null;
    }//from ww  w.  ja va2 s.  c  o m
    BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(JobEventRdbConfiguration.class);
    factory.addConstructorArgReference(eventTraceDataSourceName);
    return factory.getBeanDefinition();
}

From source file:org.solmix.runtime.support.spring.AbstractBeanDefinitionParser.java

protected void addContainerWiringAttribute(BeanDefinitionBuilder bean, boolean type, String containerName,
        ParserContext ctx) {/* w  ww .j  av  a 2 s.  c  o m*/
    bean.getRawBeanDefinition().setAttribute(WIRE_CONTAINER_ATTRIBUTE, type);
    if (containerName != null && containerName.trim().length() > 0) {
        bean.getRawBeanDefinition().setAttribute(WIRE_CONTAINER_NAME, containerName);
    }

    if (ctx != null && !ctx.getRegistry().containsBeanDefinition(WIRE_CONTAINER_HANDLER)) {
        //??,
        BeanDefinitionBuilder b = BeanDefinitionBuilder.rootBeanDefinition(WIRE_CONTAINER_HANDLER);
        ctx.getRegistry().registerBeanDefinition(WIRE_CONTAINER_HANDLER, b.getBeanDefinition());
    }
}