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

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

Introduction

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

Prototype

public BeanDefinitionBuilder addConstructorArgValue(@Nullable Object value) 

Source Link

Document

Add an indexed constructor arg value.

Usage

From source file:org.metaeffekt.dcc.commons.spring.xml.DCCConfigurationBeanDefinitionParser.java

private ManagedList<AbstractBeanDefinition> parseMappingsElement(Element unitElement, String unitId,
        BeanDefinitionRegistry registry) {
    ManagedList<AbstractBeanDefinition> mappings = new ManagedList<>();
    Element mappingsElement = DomUtils.getChildElementByTagName(unitElement, ELEMENT_UNIT_MAPPINGS);
    if (mappingsElement != null) {
        List<Element> mappingElements = DomUtils.getChildElementsByTagName(mappingsElement, "mapping");
        for (Element mappingElement : mappingElements) {
            String targetCapabilityId = parseString(mappingElement, "targetCapabilityId", null, registry);

            BeanDefinitionBuilder mappingBeanDefBuilder = BeanDefinitionBuilder
                    .genericBeanDefinition(Mapping.class);
            mappingBeanDefBuilder.addConstructorArgValue(Id.createCapabilityId(targetCapabilityId));

            ManagedList<AttributeMapper> mappers = new ManagedList<>();

            Element mapUnitAttributesElement = DomUtils.getChildElementByTagName(mappingElement,
                    "map-unit-attributes");
            if (mapUnitAttributesElement != null) {
                String sourcePrefix = parseString(mapUnitAttributesElement, "sourcePrefix", null, registry);
                String targetPrefix = parseString(mapUnitAttributesElement, "targetPrefix", null, registry);
                UnitToCapabilityAttributeMapper mapper = new UnitToCapabilityAttributeMapper(sourcePrefix,
                        targetPrefix);/*from  w w w.j  a  v a  2s.  co m*/
                mappers.add(mapper);
            }

            // extract map alls
            List<Element> mapAllElements = DomUtils.getChildElementsByTagName(mappingElement, "map-all");
            for (Element mapAllElement : mapAllElements) {
                Id<CapabilityId> sourceCapabilityId = Id
                        .createCapabilityId(parseString(mapAllElement, "sourceCapabilityId", null, registry));
                String sourcePrefix = parseString(mapAllElement, "sourcePrefix", null, registry);
                String targetPrefix = parseString(mapAllElement, "targetPrefix", null, registry);
                SourceToTargetCapabilityAttributeMapper mapper = new SourceToTargetCapabilityAttributeMapper(
                        sourceCapabilityId, sourcePrefix, targetPrefix);
                mappers.add(mapper);
            }

            // extract expressions
            List<Element> expressionElements = DomUtils.getChildElementsByTagName(mappingElement, "expression");
            for (Element expressionElement : expressionElements) {
                String attributeKey = expressionElement.getAttribute("attributeKey");
                String value = parseString(expressionElement, "value", null, registry);
                ExpressionAttributeMapper mapper = new ExpressionAttributeMapper(attributeKey, value);
                mappers.add(mapper);
            }

            mappingBeanDefBuilder.addPropertyValue("attributeMappers", mappers);

            mappingBeanDefBuilder.setScope(BeanDefinition.SCOPE_PROTOTYPE);

            mappings.add(mappingBeanDefBuilder.getBeanDefinition().cloneBeanDefinition());
        }
    }
    return mappings;
}

From source file:org.metaeffekt.dcc.commons.spring.xml.DCCConfigurationBeanDefinitionParser.java

private BeanDefinitionBuilder createGenericCapabilityBuilder(String capabilityId, Element capElement,
        Class<? extends Capability> type) {

    String capabilityDefinitionRef = capElement.getAttribute(ATTRIBUTE_CAPABILITY_DEFINITION_REF);

    // convention: if the capabilityDefinitionRef matches the capabilityId it can be omitted
    if (StringUtils.isEmpty(capabilityDefinitionRef)) {
        capabilityDefinitionRef = capabilityId;
    }/*www . j  a va 2 s.  co  m*/
    String capabilityDefRef = createCapabilityDefBeanName(capabilityDefinitionRef);

    BeanDefinitionBuilder capabilityBeanDefBuilder = BeanDefinitionBuilder.genericBeanDefinition(type);
    capabilityBeanDefBuilder.addConstructorArgValue(Id.createCapabilityId(capabilityId));
    capabilityBeanDefBuilder.addConstructorArgReference(capabilityDefRef);
    capabilityBeanDefBuilder.addConstructorArgValue(null);

    // force spring to create several instances to not use shared capabilities across different units
    capabilityBeanDefBuilder.setScope(BeanDefinition.SCOPE_PROTOTYPE);

    return capabilityBeanDefBuilder;
}

From source file:org.mule.module.extension.internal.config.OperationBeanDefinitionParser.java

@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .rootBeanDefinition(OperationMessageProcessorFactoryBean.class);
    builder.setScope(BeanDefinition.SCOPE_PROTOTYPE);
    parseConfigRef(element, builder);/*from   w w  w . ja va  2 s. c  o m*/
    builder.addConstructorArgValue(extension);
    builder.addConstructorArgValue(operation);
    builder.addConstructorArgValue(toElementDescriptorBeanDefinition(element));
    builder.addConstructorArgValue(parseNestedOperations(element, parserContext));
    builder.addConstructorArgReference(MuleProperties.OBJECT_MULE_CONTEXT);

    BeanDefinition definition = builder.getBeanDefinition();
    setNoRecurseOnDefinition(definition);
    attachProcessorDefinition(parserContext, definition);

    return definition;
}

From source file:org.mule.module.extension.internal.config.OperationBeanDefinitionParser.java

private void parseConfigRef(Element element, BeanDefinitionBuilder builder) {
    String configRef = element.getAttribute(ATTRIBUTE_NAME_CONFIG);
    if (StringUtils.isBlank(configRef)) {
        configRef = null;/*from   ww  w .j ava  2s . co  m*/
    }

    builder.addConstructorArgValue(configRef);
}

From source file:org.mule.module.extension.internal.config.XmlExtensionParserUtils.java

/**
 * Parses the given {@code element} for an attribute named {@code name}. If not found,
 * a name is auto generated for the element. In either case, the obtained name
 * is set on the {@code builder} using the {@link BeanDefinitionBuilder#addConstructorArgValue(Object)}
 * method//from  w w  w.ja  v  a  2  s .  co  m
 *
 * @param element an {@link Element} being parsed
 * @param builder a {@link BeanDefinitionBuilder}
 */
static void parseConfigName(Element element, BeanDefinitionBuilder builder) {
    String name = AutoIdUtils.getUniqueName(element, "mule-bean");
    element.setAttribute("name", name);
    builder.addConstructorArgValue(name);
}

From source file:org.mule.module.extension.internal.config.XmlExtensionParserUtils.java

/**
 * Creates a {@link BeanDefinition} which generates a {@link ElementDescriptor}
 * that describes the given {@code element}
 *
 * @param element the {@link Element} you want to describe
 * @return a {@link BeanDefinition}//w  ww  .j  a  va  2s . c om
 */
static BeanDefinition toElementDescriptorBeanDefinition(Element element) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ElementDescriptor.class);
    builder.addConstructorArgValue(element.getLocalName());
    parseElementDescriptorAttributes(element, builder);
    parseElementDescriptorChilds(element, builder);

    return builder.getBeanDefinition();
}

From source file:org.mule.module.extension.internal.config.XmlExtensionParserUtils.java

private static void parseElementDescriptorChilds(Element element, BeanDefinitionBuilder builder) {
    ManagedList<BeanDefinition> managedChilds = new ManagedList<>();
    for (Element child : DomUtils.getChildElements(element)) {
        managedChilds.add(toElementDescriptorBeanDefinition(child));
    }//  w  w  w  .  j a  v  a2  s  .  c o m

    builder.addConstructorArgValue(managedChilds);
}

From source file:org.mule.module.extension.internal.config.XmlExtensionParserUtils.java

private static void parseElementDescriptorAttributes(Element element, BeanDefinitionBuilder builder) {
    ManagedMap<String, String> managedAttributes = new ManagedMap<>();
    NamedNodeMap attributes = element.getAttributes();

    for (int i = 0; i < attributes.getLength(); i++) {
        String name = attributes.item(i).getLocalName();
        managedAttributes.put(name, element.getAttribute(name));
    }//from www .  j  a v a 2s .  co m

    builder.addConstructorArgValue(managedAttributes);
}

From source file:org.springframework.data.gemfire.function.config.AbstractFunctionExecutionBeanDefinitionBuilder.java

/**
 * Build the bean definition/*from w w  w.  j  av a  2 s . 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();
}

From source file:org.springframework.data.jdbc.config.oracle.PoolingDataSourceBeanDefinitionParser.java

protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    //ToDo look for username-connection-proxy
    boolean useWrapper = false;
    String connectionContextProviderRef = null;
    Element usernameConnectionProxyElement = DomUtils.getChildElementByTagName(element,
            USERNAME_CONNECTION_PROXY);/*from   w  w  w  . j  ava  2  s .  co m*/
    if (usernameConnectionProxyElement != null) {
        if (logger.isDebugEnabled()) {
            logger.debug("Using username-connection-proxy");
        }
        if (usernameConnectionProxyElement.hasAttribute(CONNECTION_CONTEXT_PROVIDER)) {
            if (logger.isDebugEnabled()) {
                logger.debug(CONNECTION_CONTEXT_PROVIDER + ": "
                        + usernameConnectionProxyElement.getAttribute(CONNECTION_CONTEXT_PROVIDER));
            }
            connectionContextProviderRef = usernameConnectionProxyElement
                    .getAttribute(CONNECTION_CONTEXT_PROVIDER);
        }
        useWrapper = true;
        //builder.addPropertyValue("connectionProperties", connProperties);
    }

    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition();
    builder.getRawBeanDefinition().setBeanClassName(getBeanClassName(element));
    builder.getRawBeanDefinition().setSource(parserContext.extractSource(element));
    builder.getRawBeanDefinition().setDestroyMethodName("close");
    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);
    }
    doParse(element, parserContext, builder);
    if (useWrapper) {
        BeanDefinitionBuilder wrapper = BeanDefinitionBuilder.genericBeanDefinition();
        wrapper.getRawBeanDefinition()
                .setBeanClassName("org.springframework.data.jdbc.support.oracle.ProxyDataSource");
        wrapper.addConstructorArgValue(builder.getBeanDefinition());
        if (connectionContextProviderRef == null) {
            wrapper.addConstructorArgValue(null);
        } else {
            wrapper.addConstructorArgReference(connectionContextProviderRef);
        }
        return wrapper.getBeanDefinition();
    } else {
        return builder.getBeanDefinition();
    }
}