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.smf4j.spring.RegistryNodeTemplateDefinitionParser.java

private String createWindowedMutatorFactory(ParserContext context, Element element, CounterConfig config) {

    // Find the mutator factory class for this type of windowed counter
    String mutatorFactoryClass;/* ww w .j  a  v a 2 s.  c  o  m*/
    switch (config.getCounterType()) {
    case ADD:
        mutatorFactoryClass = (config.getContentionType() == ContentionType.HIGH)
                ? HC_WINDOWED_ADD_MUTATOR_CLASS
                : LC_WINDOWED_ADD_MUTATOR_CLASS;
        break;
    case MIN:
        mutatorFactoryClass = (config.getContentionType() == ContentionType.HIGH)
                ? HC_WINDOWED_MIN_MUTATOR_CLASS
                : LC_WINDOWED_MIN_MUTATOR_CLASS;
        break;
    case MAX:
        mutatorFactoryClass = (config.getContentionType() == ContentionType.HIGH)
                ? HC_WINDOWED_MAX_MUTATOR_CLASS
                : LC_WINDOWED_MAX_MUTATOR_CLASS;
        break;
    default:
        context.getReaderContext().error("Unexpected counter type.", context.extractSource(element));
        return null;
    }

    // Find the interval strategy class for this kind of interval
    String intervalStrategyClass;
    switch (config.getIntervalsType()) {
    case SECONDS:
    case NA: // Seconds is the default
        intervalStrategyClass = SECONDS_INTERVAL_STRATEGY_CLASS;
        break;
    case POWERSOFTWO:
        intervalStrategyClass = POWERS_OF_TWO_INTERVAL_STRATEGY_CLASS;
        break;
    default:
        context.getReaderContext().error("Unexpected 'intervals' type.", context.extractSource(element));
        return null;
    }

    // Make sure the timewindow and interval are specified correctly
    if (config.getTimeWindow() == null) {
        context.getReaderContext().error("'windowed' counters must " + "specify a valid 'time-window'.",
                context.extractSource(element));
        return null;
    }
    if (config.getNumIntervals() == null) {
        context.getReaderContext().error("'windowed' counters must " + "specify an 'intervals'.",
                context.extractSource(element));
        return null;
    }

    // Create a strategy instance for the strategy selected
    BeanDefinitionBuilder strategyBdb = getBdb(intervalStrategyClass);
    strategyBdb.addConstructorArgValue(config.getTimeWindow());
    strategyBdb.addConstructorArgValue(config.getNumIntervals());
    String strategyBeanId = context.getReaderContext()
            .registerWithGeneratedName(strategyBdb.getBeanDefinition());

    // Create a mutator factory referring to the strategy
    BeanDefinitionBuilder mutatorFactoryBdb = getBdb(mutatorFactoryClass);
    mutatorFactoryBdb.addConstructorArgReference(strategyBeanId);
    return context.getReaderContext().registerWithGeneratedName(mutatorFactoryBdb.getBeanDefinition());
}

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

private BeanDefinition createMetadataDelegate(Element metadataNode) {
    BeanDefinitionBuilder builder = createBean(ExtendedMetadataDelegate.class);
    builder.addConstructorArgValue(createMetadataProvider(metadataNode));
    builder.addConstructorArgValue(createBean(ExtendedMetadata.class).getBeanDefinition());
    return builder.getBeanDefinition();
}

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

private BeanDefinition createRedirectBinding() {
    BeanDefinitionBuilder builder = createBean(HTTPRedirectDeflateBinding.class);
    builder.addConstructorArgValue(parserPool);
    return builder.getBeanDefinition();
}

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

private BeanDefinition createMetadataProvider(Element metadataNode) {
    String location = getRequiredAttribute(metadataNode, METADATA_LOCATION_ATTRIBUTE);
    BeanDefinitionBuilder builder = createBean(FilesystemMetadataProvider.class);
    builder.addConstructorArgValue(getFileFromLocation(location));
    builder.addPropertyValue("parserPool", parserPool);
    return builder.getBeanDefinition();
}

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

private void parseAndRegisterMetadataManager() {
    String defaultIDP = getRequiredAttribute(rootNode, ROOT_ENDPOINT_ATTRIBUTE);

    Element node = getRequiredElement(rootNode, METADATA_NODE);
    Collection<BeanDefinition> metadataDelegates = new ManagedList<BeanDefinition>();
    metadataDelegates.add(createMetadataDelegate(node));

    BeanDefinitionBuilder builder = createBean(CachingMetadataManager.class);
    builder.addConstructorArgValue(metadataDelegates);
    builder.addPropertyValue("defaultIDP", defaultIDP);
    registerBean(builder);//  w  ww .j  a  v a 2  s .  c o m
}

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

private BeanDefinition createAndRegisterSAMLLogoutFilter(BeanDefinition logoutProfile,
        BeanDefinition logoutHandler, BeanDefinition logoutSuccessHandler) {
    BeanDefinitionBuilder builder = createBean(CloudSealSAMLLogoutFilter.class);
    builder.addConstructorArgValue(logoutSuccessHandler);
    builder.addConstructorArgValue(logoutHandler);
    builder.addPropertyValue("contextProvider", contextProvider);
    builder.addPropertyValue("samlLogger", logger);
    builder.addPropertyValue("profile", logoutProfile);
    builder.addPropertyValue("filterProcessesUrl", getLogoutUrl());
    return registerBean(builder);
}

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

private BeanDefinition createAndRegisterSAMLLogoutProcessingFilter(BeanDefinition logoutProfile,
        BeanDefinition logoutHandler, BeanDefinition logoutSuccessHandler) {
    BeanDefinitionBuilder builder = createBean(SAMLLogoutProcessingFilter.class);
    builder.addConstructorArgValue(logoutSuccessHandler);
    builder.addConstructorArgValue(logoutHandler);
    builder.addPropertyValue("contextProvider", contextProvider);
    builder.addPropertyValue("SAMLProcessor", processor);
    builder.addPropertyValue("samlLogger", logger);
    builder.addPropertyValue("logoutProfile", logoutProfile);
    return registerBean(builder);
}

From source file:biz.c24.io.spring.integration.config.XPathSelectorParser.java

@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {

    String evaluationType = element.getAttribute("evaluation-result-type");

    String expression = element.getAttribute("xpath-statement");
    String expressionRef = element.getAttribute("xpath-statement-ref");

    boolean hasRef = StringUtils.hasText(expressionRef);
    Assert.isTrue(hasRef ^ StringUtils.hasText(expression),
            "Exactly one of the 'xpath-statement' or 'xpath-statement-ref' attributes is required.");
    if (hasRef) {
        builder.addConstructorArgReference(expressionRef);
    } else {/*w ww .j av  a2s  . c o  m*/
        builder.addConstructorArgValue(expression);
    }

    String stringTestValue = element.getAttribute("string-test-value");

    if (evaluationType.equals("boolean")) {
        builder.getBeanDefinition()
                .setBeanClass(biz.c24.io.spring.integration.selector.C24BooleanTestXPathMessageSelector.class);
        Assert.state(!StringUtils.hasText(stringTestValue),
                "'string-test-value' should not be specified when 'evaluation-result-type' is boolean");
    } else if (evaluationType.equals("string")) {
        Assert.hasText(stringTestValue,
                "'string-test-value' must be specified when 'evaluation-result-type' is string");
        builder.addPropertyValue("valueToTestFor", stringTestValue);
        builder.getBeanDefinition().setBeanClass(
                biz.c24.io.spring.integration.selector.C24StringValueTestXPathMessageSelector.class);
    } else {
        throw new IllegalArgumentException("Unsupported value [" + evaluationType
                + "] for 'evaluation-result-type', expected boolean or string.");
    }
}

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

private void createAndRegisterKeyManager() {
    Element keyManagerNode = getRequiredElement(rootNode, KEYSTORE_NODE);
    List<Element> keyNodes = getChildElementsByTagName(keyManagerNode, KEYSTORE_KEY_NODE);
    if (keyNodes.isEmpty()) {
        throw createElementException(KEYSTORE_KEY_NODE);
    }//from   w w w  .j  a  va2s  .  com

    String defaultKey = null;
    Map<String, String> keys = new ManagedMap<String, String>();
    for (Element keyNode : keyNodes) {
        String key = getRequiredAttribute(keyNode, KEYSTORE_KEY_NAME_ATTRIBUTE);
        String password = getRequiredAttribute(keyNode, KEYSTORE_KEY_PASSWORD_ATTRIBUTE);
        keys.put(key, password);
        if (defaultKey == null) {
            defaultKey = key;
        }
    }

    String location = getRequiredAttribute(keyManagerNode, KEYSTORE_LOCATION_ATTRIBUTE);
    String filePassword = getRequiredAttribute(keyManagerNode, KEYSTORE_PASSWORD_ATTRIBUTE);
    String storeType = keyManagerNode.getAttribute(KEYSTORE_TYPE_ATTRIBUTE);
    if (storeType.trim().isEmpty()) {
        storeType = "JKS";
    }

    BeanDefinitionBuilder builder = createBean(CloudSealKeyManagerImpl.class);
    builder.addConstructorArgValue(getResourceFromLocation(location));
    builder.addConstructorArgValue(filePassword);
    builder.addConstructorArgValue(keys);
    builder.addConstructorArgValue(defaultKey);
    builder.addConstructorArgValue(storeType);
    registerBean(builder);
}

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

private List<BeanDefinition> createJobListeners(final Element element) {
    Element listenerElement = DomUtils.getChildElementByTagName(element, LISTENER_TAG);
    Element distributedListenerElement = DomUtils.getChildElementByTagName(element, DISTRIBUTED_LISTENER_TAG);
    List<BeanDefinition> result = new ManagedList<>(2);
    if (null != listenerElement) {
        BeanDefinitionBuilder factory = BeanDefinitionBuilder
                .rootBeanDefinition(listenerElement.getAttribute(CLASS_ATTRIBUTE));
        factory.setScope(BeanDefinition.SCOPE_PROTOTYPE);
        result.add(factory.getBeanDefinition());
    }/*  w  w w.  j  ava2  s.  c  o  m*/
    if (null != distributedListenerElement) {
        BeanDefinitionBuilder factory = BeanDefinitionBuilder
                .rootBeanDefinition(distributedListenerElement.getAttribute(CLASS_ATTRIBUTE));
        factory.setScope(BeanDefinition.SCOPE_PROTOTYPE);
        factory.addConstructorArgValue(distributedListenerElement
                .getAttribute(DISTRIBUTED_LISTENER_STARTED_TIMEOUT_MILLISECONDS_ATTRIBUTE));
        factory.addConstructorArgValue(distributedListenerElement
                .getAttribute(DISTRIBUTED_LISTENER_COMPLETED_TIMEOUT_MILLISECONDS_ATTRIBUTE));
        result.add(factory.getBeanDefinition());
    }
    return result;
}