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

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

Introduction

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

Prototype

public BeanDefinitionBuilder addPropertyReference(String name, String beanName) 

Source Link

Document

Add a reference to the specified bean name under the property specified.

Usage

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

private void parseAndRegisterBindings(Element profileElement, File origin, BeanDefinitionRegistry registry,
        ParserContext parserContext) {/*from w ww . j av  a  2  s.c  o  m*/

    List<Element> bindingElements = DomUtils.getChildElementsByTagName(profileElement, ELEMENT_BINDING);
    for (Element bindingElement : bindingElements) {
        Element sourceElement = DomUtils.getChildElementByTagName(bindingElement, ELEMENT_BINDING_SOURCE);
        Element targetElement = DomUtils.getChildElementByTagName(bindingElement, ELEMENT_BINDING_TARGET);

        String sourceUnitRef = parseString(sourceElement, "unitRef", null, registry);
        String sourceCapabilityId = parseString(sourceElement, "capabilityId", null, registry);
        String targetUnitRef = parseString(targetElement, "unitRef", null, registry);
        String targetCapabilityId = parseString(targetElement, "capabilityId", null, registry);

        // convention: if target capabilityId is omitted then use the source capability id
        if (StringUtils.isEmpty(targetCapabilityId)) {
            targetCapabilityId = sourceCapabilityId;
        }

        String description = extractDescription(bindingElement, registry);

        BeanDefinitionBuilder bindingBeanBuilder = BeanDefinitionBuilder
                .genericBeanDefinition(BindingFactoryBean.class);
        bindingBeanBuilder.addPropertyValue(PROPERTY_ORIGIN, origin);
        bindingBeanBuilder.addPropertyValue(PROPERTY_DESCRIPTION, description);
        bindingBeanBuilder.addPropertyValue("sourceCapabilityId", Id.createCapabilityId(sourceCapabilityId));
        bindingBeanBuilder.addPropertyReference("sourceUnit", sourceUnitRef);
        bindingBeanBuilder.addPropertyValue("targetCapabilityId", Id.createCapabilityId(targetCapabilityId));
        bindingBeanBuilder.addPropertyReference("targetUnit", targetUnitRef);

        String bindingBeanName = parserContext.getReaderContext()
                .generateBeanName(bindingBeanBuilder.getBeanDefinition());
        registry.registerBeanDefinition(bindingBeanName, bindingBeanBuilder.getBeanDefinition());

        RuntimeBeanReference beanRef = new RuntimeBeanReference(bindingBeanName);
        beanRef.setSource(parserContext.extractSource(bindingElement));

    }
}

From source file:org.opentripplanner.integration.benchmark.RunBenchmarkPlanMain.java

private Map<String, BeanDefinition> getAdditionalBeans() {

    Map<String, BeanDefinition> additionalBeans = new HashMap<String, BeanDefinition>();

    BeanDefinitionBuilder bundlePath = BeanDefinitionBuilder.genericBeanDefinition(GraphBundle.class);
    bundlePath.addPropertyValue("path", _graphPath);
    additionalBeans.put("graphBundle", bundlePath.getBeanDefinition());

    BeanDefinitionBuilder graph = BeanDefinitionBuilder.genericBeanDefinition(SerializedGraphFactoryBean.class);
    graph.addPropertyReference("graphBundle", "graphBundle");
    additionalBeans.put("graph", graph.getBeanDefinition());

    return additionalBeans;
}

From source file:org.springframework.batch.integration.config.xml.JobLaunchingGatewayParser.java

@Override
protected BeanDefinitionBuilder parseHandler(Element element, ParserContext parserContext) {

    final BeanDefinitionBuilder jobLaunchingGatewayBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(JobLaunchingGateway.class);

    final String jobLauncher = element.getAttribute("job-launcher");

    if (StringUtils.hasText(jobLauncher)) {
        jobLaunchingGatewayBuilder.addConstructorArgReference(jobLauncher);
    } else {//  www  .j  av a  2 s  .  co  m
        if (logger.isDebugEnabled()) {
            logger.debug("No jobLauncher specified, using default 'jobLauncher' reference instead.");
        }
        jobLaunchingGatewayBuilder.addConstructorArgReference("jobLauncher");
    }

    IntegrationNamespaceUtils.setValueIfAttributeDefined(jobLaunchingGatewayBuilder, element, "reply-timeout",
            "sendTimeout");

    final String replyChannel = element.getAttribute("reply-channel");

    if (StringUtils.hasText(replyChannel)) {
        jobLaunchingGatewayBuilder.addPropertyReference("outputChannel", replyChannel);
    }

    return jobLaunchingGatewayBuilder;

}

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

protected void doParseCommonRegionConfiguration(Element element, ParserContext parserContext,
        BeanDefinitionBuilder regionBuilder, BeanDefinitionBuilder regionAttributesBuilder, boolean subRegion) {

    mergeTemplateRegionAttributes(element, parserContext, regionBuilder, regionAttributesBuilder);

    String resolvedCacheRef = ParsingUtils.resolveCacheReference(element.getAttribute("cache-ref"));

    if (!subRegion) {
        regionBuilder.addPropertyReference("cache", resolvedCacheRef);
        ParsingUtils.setPropertyValue(element, regionBuilder, "close");
        ParsingUtils.setPropertyValue(element, regionBuilder, "destroy");
    }/*from w ww  .ja  v  a 2  s .  c o m*/

    ParsingUtils.setPropertyValue(element, regionBuilder, "name");
    ParsingUtils.setPropertyValue(element, regionBuilder, "ignore-if-exists", "lookupEnabled");
    ParsingUtils.setPropertyValue(element, regionBuilder, "data-policy");
    ParsingUtils.setPropertyValue(element, regionBuilder, "persistent");
    ParsingUtils.setPropertyValue(element, regionBuilder, "shortcut");

    if (StringUtils.hasText(element.getAttribute("disk-store-ref"))) {
        ParsingUtils.setPropertyValue(element, regionBuilder, "disk-store-ref", "diskStoreName");
        regionBuilder.addDependsOn(element.getAttribute("disk-store-ref"));
    }

    ParsingUtils.parseOptionalRegionAttributes(parserContext, element, regionAttributesBuilder);
    ParsingUtils.parseSubscription(parserContext, element, regionAttributesBuilder);
    ParsingUtils.parseStatistics(element, regionAttributesBuilder);
    ParsingUtils.parseMembershipAttributes(parserContext, element, regionAttributesBuilder);
    ParsingUtils.parseExpiration(parserContext, element, regionAttributesBuilder);
    ParsingUtils.parseEviction(parserContext, element, regionAttributesBuilder);
    ParsingUtils.parseCompressor(parserContext, element, regionAttributesBuilder);

    String enableGateway = element.getAttribute("enable-gateway");
    String hubId = element.getAttribute("hub-id");

    // Factory will enable gateway if it is not set and hub-id is set.
    if (StringUtils.hasText(enableGateway)) {
        if (GemfireUtils.isGemfireVersion7OrAbove()) {
            log.warn("'enable-gateway' has been deprecated since Gemfire 7.0");
        }
    }

    ParsingUtils.setPropertyValue(element, regionBuilder, "enable-gateway");

    if (StringUtils.hasText(hubId)) {
        if (GemfireUtils.isGemfireVersion7OrAbove()) {
            log.warn("'hub-id' has been deprecated since Gemfire 7.0");
        }
        if (!CollectionUtils.isEmpty(DomUtils.getChildElementsByTagName(element, "gateway-sender"))) {
            parserContext.getReaderContext().error("specifying both 'hub-id' and 'gateway-sender' is invalid",
                    element);
        }
    }

    ParsingUtils.setPropertyValue(element, regionBuilder, "hub-id");

    parseCollectionOfCustomSubElements(element, parserContext, regionBuilder, AsyncEventQueue.class.getName(),
            "async-event-queue", "asyncEventQueues");

    parseCollectionOfCustomSubElements(element, parserContext, regionBuilder, GatewaySender.class.getName(),
            "gateway-sender", "gatewaySenders");

    List<Element> subElements = DomUtils.getChildElements(element);

    for (Element subElement : subElements) {
        if (subElement.getLocalName().equals("cache-listener")) {
            regionBuilder.addPropertyValue("cacheListeners",
                    ParsingUtils.parseRefOrNestedBeanDeclaration(parserContext, subElement, regionBuilder));
        } else if (subElement.getLocalName().equals("cache-loader")) {
            regionBuilder.addPropertyValue("cacheLoader", ParsingUtils
                    .parseRefOrSingleNestedBeanDeclaration(parserContext, subElement, regionBuilder));
        } else if (subElement.getLocalName().equals("cache-writer")) {
            regionBuilder.addPropertyValue("cacheWriter", ParsingUtils
                    .parseRefOrSingleNestedBeanDeclaration(parserContext, subElement, regionBuilder));
        }
    }

    if (!subRegion) {
        parseSubRegions(element, parserContext, resolvedCacheRef);
    }
}

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

static void setPropertyReference(Element element, BeanDefinitionBuilder builder, String attributeName,
        String propertyName) {/*from   w  w w.j  a  v a2 s  .  c o m*/

    String attributeValue = element.getAttribute(attributeName);

    if (StringUtils.hasText(attributeValue)) {
        builder.addPropertyReference(propertyName, attributeValue);
    }
}

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

protected void doParseRegionConfiguration(Element element, ParserContext parserContext,
        BeanDefinitionBuilder regionBuilder, BeanDefinitionBuilder regionAttributesBuilder, boolean subRegion) {

    mergeRegionTemplateAttributes(element, parserContext, regionBuilder, regionAttributesBuilder);

    String resolvedCacheRef = ParsingUtils.resolveCacheReference(element.getAttribute("cache-ref"));

    if (!subRegion) {
        regionBuilder.addPropertyReference("cache", resolvedCacheRef);
        ParsingUtils.setPropertyValue(element, regionBuilder, "close");
        ParsingUtils.setPropertyValue(element, regionBuilder, "destroy");
    }//w w  w.j ava 2s. c  o  m

    ParsingUtils.setPropertyValue(element, regionBuilder, "name");
    ParsingUtils.setPropertyValue(element, regionBuilder, "data-policy");
    ParsingUtils.setPropertyValue(element, regionBuilder, "ignore-if-exists", "lookupEnabled");
    ParsingUtils.setPropertyValue(element, regionBuilder, "persistent");
    ParsingUtils.setPropertyValue(element, regionBuilder, "shortcut");

    if (StringUtils.hasText(element.getAttribute("disk-store-ref"))) {
        ParsingUtils.setPropertyValue(element, regionBuilder, "disk-store-ref", "diskStoreName");
        regionBuilder.addDependsOn(element.getAttribute("disk-store-ref"));
    }

    ParsingUtils.parseOptionalRegionAttributes(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseSubscription(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseStatistics(element, regionAttributesBuilder);
    ParsingUtils.parseMembershipAttributes(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseExpiration(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseEviction(element, parserContext, regionAttributesBuilder);
    ParsingUtils.parseCompressor(element, parserContext, regionAttributesBuilder);

    parseCollectionOfCustomSubElements(element, parserContext, regionBuilder, AsyncEventQueue.class.getName(),
            "async-event-queue", "asyncEventQueues");

    parseCollectionOfCustomSubElements(element, parserContext, regionBuilder, GatewaySender.class.getName(),
            "gateway-sender", "gatewaySenders");

    List<Element> subElements = DomUtils.getChildElements(element);

    for (Element subElement : subElements) {
        if (subElement.getLocalName().equals("cache-listener")) {
            regionBuilder.addPropertyValue("cacheListeners",
                    ParsingUtils.parseRefOrNestedBeanDeclaration(subElement, parserContext, regionBuilder));
        } else if (subElement.getLocalName().equals("cache-loader")) {
            regionBuilder.addPropertyValue("cacheLoader", ParsingUtils
                    .parseRefOrSingleNestedBeanDeclaration(subElement, parserContext, regionBuilder));
        } else if (subElement.getLocalName().equals("cache-writer")) {
            regionBuilder.addPropertyValue("cacheWriter", ParsingUtils
                    .parseRefOrSingleNestedBeanDeclaration(subElement, parserContext, regionBuilder));
        }
    }

    if (!subRegion) {
        parseSubRegions(element, parserContext, resolvedCacheRef);
    }
}

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

static void setCacheReference(Element element, BeanDefinitionBuilder builder) {
    builder.addPropertyReference(CACHE_PROPERTY_NAME, resolveCacheReference(element));
}

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

static void setRegionReference(Element element, BeanDefinitionBuilder builder) {
    builder.addPropertyReference(REGION_PROPERTY_NAME, resolveRegionReference(element));
}

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

/**
 * Build the bean definition/* ww  w.j  a  v  a2  s  .c o 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.RacFailoverInterceptorBeanDefinitionParser.java

protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    //attributes/*from   w ww.j ava2  s . com*/
    List<Integer> recoverableErrorCodesList = new ArrayList<Integer>();
    String recoverableErrorCodes = element.getAttribute(RECOVERABLE_ERROR_CODES_ATTRIBUTE);
    if (StringUtils.hasText(recoverableErrorCodes)) {
        String[] parsedRecoverableErrorCodes = StringUtils.tokenizeToStringArray(recoverableErrorCodes, ",",
                true, true);
        for (int i = 0; i < parsedRecoverableErrorCodes.length; i++) {
            try {
                recoverableErrorCodesList.add(new Integer(parsedRecoverableErrorCodes[i]));
            } catch (NumberFormatException e) {
                parserContext.getReaderContext().error("Error parsing recoverable error code list: \""
                        + recoverableErrorCodes + "\"; " + e.getClass().getName() + " - " + e.getMessage(),
                        element);
            }
        }
        if (logger.isDebugEnabled()) {
            logger.debug(
                    "Using provided " + RECOVERABLE_ERROR_CODES_ATTRIBUTE + ": " + recoverableErrorCodesList);
        }
    }

    String maxNumberOfRetries = element.getAttribute(MAX_NUMBER_OF_RETRIES_ATTRIBUTE);
    if (logger.isDebugEnabled()) {
        if (StringUtils.hasText(maxNumberOfRetries)) {
            logger.debug("Using provided " + MAX_NUMBER_OF_RETRIES_ATTRIBUTE + ": " + maxNumberOfRetries);
        }
    }

    String backOffPolicyRef = null;
    if (element.hasAttribute(BACK_OFF_POLICY_ATTRIBUTE)) {
        backOffPolicyRef = element.getAttribute(BACK_OFF_POLICY_ATTRIBUTE);
        if (logger.isDebugEnabled()) {
            logger.debug("Using provided " + BACK_OFF_POLICY_ATTRIBUTE + ": " + backOffPolicyRef);
        }
    }

    BeanDefinitionBuilder retryTemplateBuilder = BeanDefinitionBuilder.genericBeanDefinition();
    retryTemplateBuilder.getRawBeanDefinition().setBeanClassName(RETRY_TEMPLATE_CLASS);
    BeanDefinitionBuilder racFailoverRetryPolicyBuilder = BeanDefinitionBuilder.genericBeanDefinition();
    racFailoverRetryPolicyBuilder.getRawBeanDefinition().setBeanClassName(RAC_FAILOVER_RETRY_POLICY_CLASS);
    if (recoverableErrorCodesList.size() > 0) {
        racFailoverRetryPolicyBuilder.addPropertyValue(RECOVERABLE_ERROR_CODES_PROPERTY,
                recoverableErrorCodesList);
    }
    if (StringUtils.hasText(maxNumberOfRetries)) {
        racFailoverRetryPolicyBuilder.addPropertyValue(MAX_NUMBER_OF_RETRIES_PROPERTY, maxNumberOfRetries);
    }
    retryTemplateBuilder.addPropertyValue(RETRY_POLICY_PROPERTY,
            racFailoverRetryPolicyBuilder.getRawBeanDefinition());
    if (StringUtils.hasText(backOffPolicyRef)) {
        retryTemplateBuilder.addPropertyReference(BACK_OFF_POLICY_PROPERTY, backOffPolicyRef);
    }

    builder.addPropertyValue(RETRY_OPERATIONS_PROPERTY, retryTemplateBuilder.getRawBeanDefinition());
    if (logger.isDebugEnabled()) {
        logger.debug("Using retry policy: "
                + racFailoverRetryPolicyBuilder.getRawBeanDefinition().getBeanClassName());
    }

    builder.setRole(BeanDefinition.ROLE_SUPPORT);

}