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

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

Introduction

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

Prototype

public AbstractBeanDefinition getBeanDefinition() 

Source Link

Document

Validate and return the created BeanDefinition object.

Usage

From source file:org.smf4j.spring.RegistryNodeTemplateDefinitionParser.java

protected String createNodeTemplateRef(ParserContext context, Element element) {
    String id = element.getAttribute(REF_ATTR);
    if (!StringUtils.hasLength(id)) {
        context.getReaderContext().error("<node-template> MUST must have a 'name'.",
                context.extractSource(element));
        return null;
    }/*from w  ww.  j  a v a  2s .c o m*/

    BeanDefinitionBuilder bdb = getBdb(RegistryNodeTemplateProxy.class);
    String newName = element.getAttribute(NAME_ATTR);
    if (StringUtils.hasLength(newName)) {
        bdb.addPropertyValue(NAME_ATTR, newName);
    }

    bdb.addPropertyReference(TEMPLATE_ATTR, id);
    return context.getReaderContext().registerWithGeneratedName(bdb.getBeanDefinition());
}

From source file:com.tacitknowledge.flip.spring.config.InterceptHandlerParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    XmlBeanFactory factory = new XmlBeanFactory(
            new ClassPathResource("com/tacitknowledge/flip/spring/context.xml"));

    BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder.rootBeanDefinition(FlipSpringAspect.class);
    String defaultUrlValue = element.getAttribute("default-url");
    MutablePropertyValues propertyValues = new MutablePropertyValues();
    propertyValues.addPropertyValue("defaultValue", defaultUrlValue);
    propertyValues.addPropertyValue(FlipSpringAspect.FEATURE_SERVICE_BEAN_NAME,
            new RuntimeBeanReference(FlipSpringAspect.FEATURE_SERVICE_BEAN_NAME));
    beanBuilder.getRawBeanDefinition().setPropertyValues(propertyValues);

    for (String name : factory.getBeanDefinitionNames()) {
        parserContext.getRegistry().registerBeanDefinition(name, factory.getBeanDefinition(name));
    }// ww w .j  a va  2  s .  c om
    parserContext.getRegistry().registerBeanDefinition(FlipSpringAspect.ASPECT_BEAN_NAME,
            beanBuilder.getBeanDefinition());

    return null;
}

From source file:org.codehaus.grepo.core.config.GenericRepositoryScanBeanDefinitionParser.java

/**
 * {@inheritDoc}/*from  w  w w.  j a v a2  s .  c o  m*/
 */
public BeanDefinition parse(Element element, ParserContext parserContext) {
    Object source = parserContext.extractSource(element);
    GenericRepositoryConfigContext configContext = new GenericRepositoryConfigContext(element);

    // init bean defintion parse delegate...
    BeanDefinitionParserDelegate delegate = new BeanDefinitionParserDelegate(parserContext.getReaderContext());
    delegate.initDefaults(element.getOwnerDocument().getDocumentElement());

    GenericRepositoryBeanDefinitionScanner scanner = configureScanner(configContext, parserContext);

    parseBeanNameGenerator(configContext, parserContext);

    String[] basePackages = StringUtils.commaDelimitedListToStringArray(configContext.getBasePackage());
    for (String basePackage : basePackages) {
        Set<BeanDefinition> candidates = scanner.findCandidateComponents(basePackage);
        for (BeanDefinition candidate : candidates) {
            BeanDefinitionBuilder builder = BeanDefinitionParserHelper
                    .createBuilderFromConfigContext(configContext, source, defaultGenericRepositoryFactoryType);

            delegate.parsePropertyElements(configContext.getElement(), builder.getRawBeanDefinition());

            builder.addPropertyValue(GenericRepositoryConfigContext.PROXY_CLASS_PROPERTY,
                    candidate.getBeanClassName());

            String beanName = beanNameGenerator.generateBeanName(candidate, parserContext.getRegistry());
            parserContext
                    .registerBeanComponent(new BeanComponentDefinition(builder.getBeanDefinition(), beanName));
            logger.debug("Registered generic repository bean '{}'", beanName);
        }
    }

    return null;
}

From source file:com.cloudseal.spring.client.namespace.CloudSealBeanDefinitionParserInstance.java

private BeanDefinition createDefaultProfileOptions() {
    BeanDefinitionBuilder builder = createBean(WebSSOProfileOptions.class);
    builder.addPropertyValue("includeScoping", "false");
    String attr = getAttribute(ROOT_APP_ID_ATTRIBUTE);
    if (attr != null && attr.length() > 0) {
        builder.addPropertyValue("providerName", attr);
    }/* w w w.j a v a  2s . c  o m*/
    return builder.getBeanDefinition();
}

From source file:org.smf4j.spring.RegistryNodeTemplateDefinitionParser.java

protected String parseCustom(ParserContext context, Element element, BeanDefinition containingBean) {
    String name = getName(context, element);
    String ref = element.getAttribute(REF_ATTR);

    String customBeanId = null;/*from  w  w w  .  j ava2  s  . c  om*/
    if (StringUtils.hasLength(ref)) {
        customBeanId = ref;
    } else {
        // Grab the single child element, that should define or point
        // to the custom Accumulator or Calcuation bean definition.
        NodeList childList = element.getChildNodes();
        Element child = null;
        for (int i = 0; i < childList.getLength(); i++) {
            Node childNode = childList.item(i);
            if (!(childNode instanceof Element)) {
                continue;
            }

            if (child != null) {
                context.getReaderContext()
                        .error("'custom' elements without a 'ref' attribute must "
                                + "have exactly one 'bean', 'ref', or 'idref' child" + " element.",
                                context.extractSource(element));
            }
            child = (Element) childNode;
        }

        if (child == null) {
            context.getReaderContext()
                    .error("'custom' elements must specify a 'ref' attribute or a "
                            + "single 'bean', 'ref', or 'idref' child element.",
                            context.extractSource(element));
        }

        // Parse the contents of the custom bean
        Object o = context.getDelegate().parsePropertySubElement(child, containingBean);

        if (o instanceof BeanDefinitionHolder) {
            BeanDefinitionHolder bdh = (BeanDefinitionHolder) o;
            customBeanId = bdh.getBeanName();
            if (!StringUtils.hasLength(customBeanId)) {
                // They didn't give their bean an id, so we'll need to
                // generate one for it now.
                customBeanId = context.getReaderContext().generateBeanName(bdh.getBeanDefinition());
            }

            // Register this bean
            context.getRegistry().registerBeanDefinition(customBeanId, bdh.getBeanDefinition());
        } else if (o instanceof RuntimeBeanReference) {
            RuntimeBeanReference rbr = (RuntimeBeanReference) o;
            customBeanId = rbr.getBeanName();
        } else if (o instanceof RuntimeBeanNameReference) {
            RuntimeBeanNameReference rbnr = (RuntimeBeanNameReference) o;
            customBeanId = rbnr.getBeanName();
        }
    }

    // Create proxy that associates the given name with this child
    BeanDefinitionBuilder accProxyBdb = getBdb(RegistryNodeChildProxy.class);
    accProxyBdb.addPropertyValue(NAME_ATTR, name);
    accProxyBdb.addPropertyValue(CHILD_ATTR, customBeanId);
    accProxyBdb.getRawBeanDefinition().setSource(element);

    return context.getReaderContext().registerWithGeneratedName(accProxyBdb.getBeanDefinition());
}

From source file:org.bigtester.ate.xmlschema.TestProjectBeanDefinitionParser.java

/**
 * {@inheritDoc}// w w  w  .j  a  v  a2 s  .  co  m
 */
@Override
protected @Nullable AbstractBeanDefinition parseInternal(@Nullable Element element,
        @Nullable ParserContext parserContext) {
    // Here we parse the Spring elements such as < property>
    if (parserContext == null || element == null)
        throw GlobalUtils.createNotInitializedException("element and parserContext");
    // this will never be null since the schema explicitly requires that a
    // value be supplied

    BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(TestProject.class);

    int stepThinkTime = Integer
            .parseInt(element.getAttribute(XsdElementConstants.ATTR_TESTPROJECT_STEPTHINKTIME));
    factory.addPropertyValue(XsdElementConstants.ATTR_TESTPROJECT_STEPTHINKTIME, stepThinkTime);

    String globalInitXml = element.getAttribute(XsdElementConstants.ATTR_TESTPROJECT_GLOBALINITXMLFILE);

    factory.addConstructorArgValue(globalInitXml);

    List<Element> suiteListElements = (List<Element>) DomUtils.getChildElementsByTagName(element,
            XsdElementConstants.ELEMENT_TESTSUITE);

    if (suiteListElements != null && !suiteListElements.isEmpty()) {
        parseSuiteComponents(suiteListElements, factory, parserContext);
    }

    return factory.getBeanDefinition();
}

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

@Override
protected AbstractBeanDefinition parseInternal(final Element element, final ParserContext parserContext) {
    BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(SpringJobScheduler.class);
    factory.setInitMethodName("init");
    factory.setDestroyMethodName("shutdown");
    factory.addConstructorArgValue(BeanDefinitionBuilder
            .rootBeanDefinition(element.getAttribute(CLASS_ATTRIBUTE)).getBeanDefinition());
    factory.addConstructorArgReference(element.getAttribute(REGISTRY_CENTER_REF_ATTRIBUTE));
    factory.addConstructorArgValue(createJobConfiguration(element));
    BeanDefinition jobEventConfig = createJobEventConfig(element);
    if (null != jobEventConfig) {
        factory.addConstructorArgValue(jobEventConfig);
    }/*from ww  w . j a v a  2s  .c  om*/
    factory.addConstructorArgValue(createJobListeners(element));
    return factory.getBeanDefinition();
}

From source file:org.apache.ftpserver.config.spring.CommandFactoryBeanDefinitionParser.java

/**
 * {@inheritDoc}//  w  w  w .java2s .c  o  m
 */
@Override
protected void doParse(final Element element, final ParserContext parserContext,
        final BeanDefinitionBuilder builder) {

    BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(CommandFactoryFactory.class);

    ManagedMap commands = new ManagedMap();

    List<Element> childs = SpringUtil.getChildElements(element);

    for (Element commandElm : childs) {
        String name = commandElm.getAttribute("name");
        Object bean = SpringUtil.parseSpringChildElement(commandElm, parserContext, builder);
        commands.put(name, bean);
    }

    factoryBuilder.addPropertyValue("commandMap", commands);

    if (StringUtils.hasText(element.getAttribute("use-default"))) {
        factoryBuilder.addPropertyValue("useDefaultCommands",
                Boolean.valueOf(element.getAttribute("use-default")));
    }

    BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition();
    String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition);

    BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId);
    registerBeanDefinition(factoryHolder, parserContext.getRegistry());

    // set the factory on the listener bean
    builder.getRawBeanDefinition().setFactoryBeanName(factoryId);
    builder.getRawBeanDefinition().setFactoryMethodName("createCommandFactory");

}

From source file:org.opencredo.cloud.storage.si.adapter.config.InboundChannelAdapterParser.java

/**
 * @param element/* w  ww.j  ava 2  s .c o  m*/
 * @param parserContext
 */
@Override
protected BeanMetadataElement parseSource(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .genericBeanDefinition(ReadingMessageSource.class.getName());

    String templateRef = element.getAttribute(AdapterParserUtils.TEMPLATE_REF_ATTRIBUTE);
    String containerName = element.getAttribute(AdapterParserUtils.CONTAINER_NAME_ATTRIBUTE);
    String filterRef = element.getAttribute(AdapterParserUtils.FILTER_ATTRIBUTE);
    String comparatorRef = element.getAttribute(AdapterParserUtils.COMPARATOR_ATTRIBUTE);

    builder.addConstructorArgReference(templateRef);
    builder.addConstructorArgValue(containerName);

    if (StringUtils.hasText(filterRef)) {
        builder.addConstructorArgReference(filterRef);
    }

    if (StringUtils.hasText(comparatorRef)) {
        builder.addConstructorArgReference(comparatorRef);
    }

    return builder.getBeanDefinition();
}

From source file:org.apache.smscserver.config.spring.CommandFactoryBeanDefinitionParser.java

/**
 * {@inheritDoc}// www . j  a va 2  s  .co  m
 */
@SuppressWarnings("unchecked")
@Override
protected void doParse(final Element element, final ParserContext parserContext,
        final BeanDefinitionBuilder builder) {

    BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(CommandFactoryFactory.class);

    ManagedMap commands = new ManagedMap();

    List<Element> childs = SpringUtil.getChildElements(element);

    for (Element commandElm : childs) {
        String name = commandElm.getAttribute("protocol-id");
        Object bean = SpringUtil.parseSpringChildElement(commandElm, parserContext, builder);
        commands.put(name, bean);
    }

    factoryBuilder.addPropertyValue("commandMap", commands);

    if (StringUtils.hasText(element.getAttribute("use-default"))) {
        factoryBuilder.addPropertyValue("useDefaultCommands",
                Boolean.valueOf(element.getAttribute("use-default")));
    }

    BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition();
    String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition);

    BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId);
    this.registerBeanDefinition(factoryHolder, parserContext.getRegistry());

    // set the factory on the listener bean
    builder.getRawBeanDefinition().setFactoryBeanName(factoryId);
    builder.getRawBeanDefinition().setFactoryMethodName("createCommandFactory");

}