Example usage for org.springframework.beans.factory.support BeanDefinitionReaderUtils registerWithGeneratedName

List of usage examples for org.springframework.beans.factory.support BeanDefinitionReaderUtils registerWithGeneratedName

Introduction

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

Prototype

public static String registerWithGeneratedName(AbstractBeanDefinition definition,
        BeanDefinitionRegistry registry) throws BeanDefinitionStoreException 

Source Link

Document

Register the given bean definition with a generated name, unique within the given bean factory.

Usage

From source file:com.zuoxiaolong.niubi.job.spring.config.JobDrivenBeanDefinitionParser.java

@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    AbstractBeanDefinition beanDefinition = new GenericBeanDefinition();
    MutablePropertyValues propertyValues = new MutablePropertyValues();
    beanDefinition.setBeanClass(SpringContextJobDriver.class);
    propertyValues.addPropertyValue("packagesToScan", element.getAttribute("packagesToScan"));
    beanDefinition.setPropertyValues(propertyValues);
    beanDefinition.setInitMethodName("init");
    BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, parserContext.getRegistry());
    return beanDefinition;
}

From source file:atunit.spring.SpringContainer.java

public Object createTest(Class<?> testClass, Map<Field, Object> fieldValues) throws Exception {

    GenericApplicationContext ctx = new GenericApplicationContext();

    for (Field field : fieldValues.keySet()) {

        Bean beanAnno = field.getAnnotation(Bean.class);

        AbstractBeanDefinition beandef = defineInstanceHolderFactoryBean(field.getType(),
                fieldValues.get(field));

        if ((beanAnno != null) && !beanAnno.value().equals("")) {
            ctx.registerBeanDefinition(beanAnno.value(), beandef);
        } else {/*from  w ww.  j  a  v a2  s.co m*/
            BeanDefinitionReaderUtils.registerWithGeneratedName(beandef, ctx);
        }
    }

    loadBeanDefinitions(testClass, ctx);

    fillInMissingFieldBeans(testClass, ctx);

    ctx.refresh();

    Object test = testClass.newInstance();
    for (Field field : testClass.getDeclaredFields()) {
        field.setAccessible(true);
        Bean beanAnno = field.getAnnotation(Bean.class);
        if (beanAnno == null) {
            if (fieldValues.containsKey(field)) {
                field.set(test, fieldValues.get(field));
            }
        } else {
            if (!beanAnno.value().equals("")) {
                field.set(test, ctx.getBean(beanAnno.value()));
            } else {
                String[] beanNames = ctx.getBeanNamesForType(field.getType());
                if (beanNames.length < 1) {
                    throw new BeanCreationException("There are no beans defined with type " + field.getType());
                }
                if (beanNames.length > 1) {
                    throw new BeanCreationException(
                            "There are " + beanNames.length + " beans defined with type " + field.getType()
                                    + "; consider wiring by name instead");
                }
                field.set(test, ctx.getBean(beanNames[0]));
            }
        }
    }

    return test;
}

From source file:org.opencredo.couchdb.config.CouchDbInboundChannelAdapterParser.java

@Override
protected BeanMetadataElement parseSource(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder builder = null;
    String databaseUrl = element.getAttribute(COUCHDB_DATABASE_URL_ATTRIBUTE);
    String changesOperations = element.getAttribute(COUCHDB_CHANGES_OPERATIONS_ATTRIBUTE);
    String allDocuments = element.getAttribute(COUCHDB_ALL_DOCUMENTS_ATTRIBUTE);
    String allDocumentsLimit = element.getAttribute(COUCHDB_ALL_DOCUMENTS_LIMIT_ATTRIBUTE);

    if (StringUtils.hasText(databaseUrl)) {
        if (StringUtils.hasText(changesOperations)) {
            parserContext.getReaderContext().error("At most one of '" + COUCHDB_DATABASE_URL_ATTRIBUTE
                    + "' and '" + COUCHDB_CHANGES_OPERATIONS_ATTRIBUTE + "' may be provided.", element);
        } else {/*from w w w. j  ava  2 s  .c  o m*/
            if ("true".equals(allDocuments)) {
                builder = BeanDefinitionBuilder.genericBeanDefinition(CouchDbAllDocumentsMessageSource.class);
            } else {
                builder = BeanDefinitionBuilder.genericBeanDefinition(CouchDbChangesPollingMessageSource.class);
            }
            builder.addConstructorArgValue(databaseUrl);
        }
    } else if (StringUtils.hasText(changesOperations)) {
        // changesOperations and allDocuments are XOR
        if ("true".equals(allDocuments)) {
            parserContext.getReaderContext().error("At most one of '" + COUCHDB_ALL_DOCUMENTS_ATTRIBUTE
                    + "' and '" + COUCHDB_CHANGES_OPERATIONS_ATTRIBUTE + "' may be provided.", element);
        } else {
            builder = BeanDefinitionBuilder.genericBeanDefinition(CouchDbChangesPollingMessageSource.class);
            builder.addConstructorArgReference(changesOperations);
        }
    } else {
        parserContext.getReaderContext().error("Either '" + COUCHDB_DATABASE_URL_ATTRIBUTE + "' or '"
                + COUCHDB_CHANGES_OPERATIONS_ATTRIBUTE + "' must be provided.", element);
    }

    if ("true".equals(allDocuments)) {
        builder.addConstructorArgValue(Integer.valueOf(allDocumentsLimit));
    }

    String beanName = BeanDefinitionReaderUtils.registerWithGeneratedName(builder.getBeanDefinition(),
            parserContext.getRegistry());
    return new RuntimeBeanReference(beanName);
}

From source file:net.scriptability.core.integration.spring.ScriptAbilityBeanDefinitionParser.java

private String registerScriptAbilityFactoryBean(final Element configureElement,
        final BeanDefinitionRegistry beanDefinitionRegistry) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .genericBeanDefinition(SpringScriptAbilityFactory.class);
    if (configureElement.hasAttribute(XML_ATTRIBUTE__CONFIGURATION_LOADER)) {
        builder.addPropertyReference("configurationLoader",
                configureElement.getAttribute(XML_ATTRIBUTE__CONFIGURATION_LOADER));
    }//from   w  ww  .  jav a2 s  .  c om
    if (configureElement.hasAttribute(XML_ATTRIBUTE__EVENT_SCHEDULER)) {
        builder.addPropertyReference("eventScheduler",
                configureElement.getAttribute(XML_ATTRIBUTE__EVENT_SCHEDULER));
    }
    return BeanDefinitionReaderUtils.registerWithGeneratedName(builder.getBeanDefinition(),
            beanDefinitionRegistry);
}

From source file:atunit.spring.SpringContainer.java

protected void fillInMissingFieldBeans(Class<?> testClass, GenericApplicationContext ctx) throws Exception {
    for (Field field : testClass.getDeclaredFields()) {
        Bean beanAnno = field.getAnnotation(Bean.class);
        if (beanAnno == null)
            continue;
        String name = beanAnno.value();
        if (!name.equals("") && !ctx.containsBean(name)) {
            ctx.registerBeanDefinition(name, defineAutowireBean(field.getType()));
        } else if (ctx.getBeansOfType(field.getType()).isEmpty()) {
            BeanDefinitionReaderUtils.registerWithGeneratedName(defineAutowireBean(field.getType()), ctx);
        }// w  w w.  ja v a 2 s .c o m
    }
}

From source file:net.scriptability.core.integration.spring.ScriptAbilityBeanDefinitionParser.java

private String registerScriptAbilityInitialisingBean(final Element configureElement,
        final String factoryBeanName, final BeanDefinitionRegistry beanDefinitionRegistry) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .genericBeanDefinition(MethodInvokingFactoryBean.class);
    builder.addPropertyReference("targetObject", DEFAULT_SCRIPTABILITY_BEAN_NAME);
    builder.addPropertyValue("targetMethod", "start");

    List<Object> arguments = new ManagedList();
    if (hasBindingsElement(configureElement)) {
        Map<String, RuntimeBeanReference> bindings = createBeanBindings((Element) configureElement
                .getElementsByTagNameNS(XML_NAMESPACE__SCRIPTABILITY, XML_ELEMENT__BINDINGS).item(0));
        arguments.add(bindings);/*w w  w.j  a v  a 2  s .c  o m*/
    }
    arguments.add(new RuntimeBeanReference(factoryBeanName));
    builder.addPropertyValue("arguments", arguments);

    return BeanDefinitionReaderUtils.registerWithGeneratedName(builder.getBeanDefinition(),
            beanDefinitionRegistry);
}

From source file:org.springframework.data.gemfire.config.annotation.support.AbstractAnnotationConfigSupport.java

/**
 * Registers the {@link AbstractBeanDefinition} with the {@link BeanDefinitionRegistry} using a generated bean name.
 *
 * @param beanDefinition {@link AbstractBeanDefinition} to register.
 * @param registry {@link BeanDefinitionRegistry} used to register the {@link AbstractBeanDefinition}.
 * @return the given {@link AbstractBeanDefinition}.
 * @see org.springframework.beans.factory.support.AbstractBeanDefinition
 * @see org.springframework.beans.factory.support.BeanDefinitionRegistry
 * @see org.springframework.beans.factory.support.BeanDefinitionReaderUtils#registerWithGeneratedName(AbstractBeanDefinition, BeanDefinitionRegistry)
 *///from   w w w.java  2s  .c om
protected AbstractBeanDefinition register(AbstractBeanDefinition beanDefinition,
        BeanDefinitionRegistry registry) {

    Optional.ofNullable(registry)
            .ifPresent(it -> BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, it));

    return beanDefinition;
}

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

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanDefinition clientCacheDefinition = new ClientCacheParser().parse(element, parserContext);

    parserContext.getRegistry().registerBeanDefinition(GemfireConstants.DEFAULT_GEMFIRE_CACHE_NAME,
            clientCacheDefinition);/*w w  w.j ava2s.com*/

    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.gemfire.config.xml.GemfireDataSourceParser.java

/**
 * {@inheritDoc}//from   w ww  . j a v  a2 s . co  m
 */
@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.gemfire.function.config.AbstractFunctionExecutionBeanDefinitionBuilder.java

/**
 * Build the bean definition/* w w  w .  j av a2s.  co  m*/
 * @param registry
 * @return
 */
BeanDefinition build(BeanDefinitionRegistry registry) {

    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .rootBeanDefinition(getFunctionProxyFactoryBeanClass());

    builder.addConstructorArgValue(configuration.getFunctionExecutionInterface());

    BeanDefinitionBuilder functionTemplateBuilder = getGemfireOperationsBeanDefinitionBuilder(registry);
    functionTemplateBuilder.setLazyInit(true);

    String resultCollectorRef = (String) configuration.getAttribute("resultCollector");
    if (StringUtils.hasText(resultCollectorRef)) {
        functionTemplateBuilder.addPropertyReference("resultCollector", resultCollectorRef);
    }

    AbstractBeanDefinition functionTemplate = functionTemplateBuilder.getBeanDefinition();

    String functionTemplateName = BeanDefinitionReaderUtils.registerWithGeneratedName(functionTemplate,
            registry);

    builder.addConstructorArgReference(functionTemplateName);

    return builder.getBeanDefinition();
}