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.drools.container.spring.namespace.KnowledgeSessionDefinitionParser.java

@SuppressWarnings("unchecked")
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {

    String id = element.getAttribute("id");
    emptyAttributeCheck(element.getLocalName(), "id", id);

    String kbase = element.getAttribute(KBASE_ATTRIBUTE);
    emptyAttributeCheck(element.getLocalName(), KBASE_ATTRIBUTE, kbase);

    String sessionType = element.getAttribute(TYPE_ATTRIBUTE);
    BeanDefinitionBuilder factory;

    if ("stateful".equals(sessionType)) {
        factory = BeanDefinitionBuilder.rootBeanDefinition(StatefulKnowledgeSessionBeanFactory.class);
    } else if ("stateless".equals(sessionType)) {
        factory = BeanDefinitionBuilder.rootBeanDefinition(StatelessKnowledgeSessionBeanFactory.class);
    } else {/*ww  w.ja v a 2s  . c o m*/
        throw new IllegalArgumentException(
                "Invalid value for " + TYPE_ATTRIBUTE + " attribute: " + sessionType);
    }

    factory.addPropertyReference("kbase", kbase);

    String node = element.getAttribute(GRID_NODE_ATTRIBUTE);
    if (node != null && node.length() > 0) {
        factory.addPropertyReference("node", node);
    }

    String name = element.getAttribute(NAME_ATTRIBUTE);
    if (StringUtils.hasText(name)) {
        factory.addPropertyValue("name", name);
    } else {
        factory.addPropertyValue("name", id);
    }

    // Additions for JIRA JBRULES-3076
    String listeners = element.getAttribute(LISTENERS_ATTRIBUTE);
    if (StringUtils.hasText(listeners)) {
        factory.addPropertyValue("eventListenersFromGroup", new RuntimeBeanReference(listeners));
    }
    EventListenersUtil.parseEventListeners(parserContext, factory, element);
    // End of Additions for JIRA JBRULES-3076

    Element ksessionConf = DomUtils.getChildElementByTagName(element, "configuration");
    if (ksessionConf != null) {
        Element persistenceElm = DomUtils.getChildElementByTagName(ksessionConf, "jpa-persistence");
        if (persistenceElm != null) {
            BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder
                    .genericBeanDefinition(JpaConfiguration.class);

            String loadId = persistenceElm.getAttribute("load");
            if (StringUtils.hasText(loadId)) {
                beanBuilder.addPropertyValue("id", Long.parseLong(loadId));
            }

            Element tnxMng = DomUtils.getChildElementByTagName(persistenceElm, TX_MANAGER_ATTRIBUTE);
            String ref = tnxMng.getAttribute("ref");

            beanBuilder.addPropertyReference("platformTransactionManager", ref);

            Element emf = DomUtils.getChildElementByTagName(persistenceElm, EMF_ATTRIBUTE);
            ref = emf.getAttribute("ref");
            beanBuilder.addPropertyReference("entityManagerFactory", ref);

            Element variablePersisters = DomUtils.getChildElementByTagName(persistenceElm,
                    "variable-persisters");
            if (variablePersisters != null && variablePersisters.hasChildNodes()) {
                List<Element> childPersisterElems = DomUtils.getChildElementsByTagName(variablePersisters,
                        "persister");
                ManagedMap persistors = new ManagedMap(childPersisterElems.size());
                for (Element persisterElem : childPersisterElems) {
                    String forClass = persisterElem.getAttribute(FORCLASS_ATTRIBUTE);
                    String implementation = persisterElem.getAttribute(IMPLEMENTATION_ATTRIBUTE);
                    if (!StringUtils.hasText(forClass)) {
                        throw new RuntimeException("persister element must have valid for-class attribute");
                    }
                    if (!StringUtils.hasText(implementation)) {
                        throw new RuntimeException(
                                "persister element must have valid implementation attribute");
                    }
                    persistors.put(forClass, implementation);
                }
                beanBuilder.addPropertyValue("variablePersisters", persistors);
            }

            factory.addPropertyValue("jpaConfiguration", beanBuilder.getBeanDefinition());
        }
        BeanDefinitionBuilder rbaseConfBuilder = BeanDefinitionBuilder
                .rootBeanDefinition(SessionConfiguration.class);
        Element e = DomUtils.getChildElementByTagName(ksessionConf, KEEP_REFERENCE);
        if (e != null && StringUtils.hasText(e.getAttribute("enabled"))) {
            rbaseConfBuilder.addPropertyValue("keepReference", Boolean.parseBoolean(e.getAttribute("enabled")));
        }

        e = DomUtils.getChildElementByTagName(ksessionConf, CLOCK_TYPE);
        if (e != null && StringUtils.hasText(e.getAttribute("type"))) {
            rbaseConfBuilder.addPropertyValue("clockType", ClockType.resolveClockType(e.getAttribute("type")));
        }
        factory.addPropertyValue("conf", rbaseConfBuilder.getBeanDefinition());

        e = DomUtils.getChildElementByTagName(ksessionConf, WORK_ITEMS);
        if (e != null) {
            List<Element> children = DomUtils.getChildElementsByTagName(e, WORK_ITEM);
            if (children != null && !children.isEmpty()) {
                ManagedMap workDefs = new ManagedMap();
                for (Element child : children) {
                    workDefs.put(child.getAttribute("name"),
                            new RuntimeBeanReference(child.getAttribute("ref")));
                }
                factory.addPropertyValue("workItems", workDefs);
            }
        }
    }

    Element batch = DomUtils.getChildElementByTagName(element, "batch");
    if (batch == null) {
        // just temporary legacy suppport
        batch = DomUtils.getChildElementByTagName(element, "script");
    }
    if (batch != null) {
        // we know there can only ever be one
        ManagedList children = new ManagedList();

        for (int i = 0, length = batch.getChildNodes().getLength(); i < length; i++) {
            Node n = batch.getChildNodes().item(i);
            if (n instanceof Element) {
                Element e = (Element) n;

                BeanDefinitionBuilder beanBuilder = null;
                if ("insert-object".equals(e.getLocalName())) {
                    String ref = e.getAttribute("ref");
                    Element nestedElm = getFirstElement(e.getChildNodes());
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(InsertObjectCommand.class);
                    if (StringUtils.hasText(ref)) {
                        beanBuilder.addConstructorArgReference(ref);
                    } else if (nestedElm != null) {
                        beanBuilder.addConstructorArgValue(
                                parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null));
                    } else {
                        throw new IllegalArgumentException(
                                "insert-object must either specify a 'ref' attribute or have a nested bean");
                    }
                } else if ("set-global".equals(e.getLocalName())) {
                    String ref = e.getAttribute("ref");
                    Element nestedElm = getFirstElement(e.getChildNodes());
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(SetGlobalCommand.class);
                    beanBuilder.addConstructorArgValue(e.getAttribute("identifier"));
                    if (StringUtils.hasText(ref)) {
                        beanBuilder.addConstructorArgReference(ref);
                    } else if (nestedElm != null) {
                        beanBuilder.addConstructorArgValue(
                                parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null));
                    } else {
                        throw new IllegalArgumentException(
                                "set-global must either specify a 'ref' attribute or have a nested bean");
                    }
                } else if ("fire-until-halt".equals(e.getLocalName())) {
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(FireUntilHaltCommand.class);
                } else if ("fire-all-rules".equals(e.getLocalName())) {
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(FireAllRulesCommand.class);
                    String max = e.getAttribute("max");
                    if (StringUtils.hasText(max)) {
                        beanBuilder.addPropertyValue("max", max);
                    }
                } else if ("start-process".equals(e.getLocalName())) {

                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(StartProcessCommand.class);
                    String processId = e.getAttribute("process-id");
                    if (!StringUtils.hasText(processId)) {
                        throw new IllegalArgumentException("start-process must specify a process-id");
                    }
                    beanBuilder.addConstructorArgValue(processId);

                    List<Element> params = DomUtils.getChildElementsByTagName(e, "parameter");
                    if (!params.isEmpty()) {
                        ManagedMap map = new ManagedMap();
                        for (Element param : params) {
                            String identifier = param.getAttribute("identifier");
                            if (!StringUtils.hasText(identifier)) {
                                throw new IllegalArgumentException(
                                        "start-process paramaters must specify an identifier");
                            }

                            String ref = param.getAttribute("ref");
                            Element nestedElm = getFirstElement(param.getChildNodes());
                            if (StringUtils.hasText(ref)) {
                                map.put(identifier, new RuntimeBeanReference(ref));
                            } else if (nestedElm != null) {
                                map.put(identifier, parserContext.getDelegate()
                                        .parsePropertySubElement(nestedElm, null, null));
                            } else {
                                throw new IllegalArgumentException(
                                        "start-process parameters must either specify a 'ref' attribute or have a nested bean");
                            }
                        }
                        beanBuilder.addPropertyValue("parameters", map);
                    }
                } else if ("signal-event".equals(e.getLocalName())) {
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(SignalEventCommand.class);
                    String processInstanceId = e.getAttribute("process-instance-id");
                    if (StringUtils.hasText(processInstanceId)) {
                        beanBuilder.addConstructorArgValue(processInstanceId);
                    }

                    beanBuilder.addConstructorArgValue(e.getAttribute("event-type"));

                    String ref = e.getAttribute("ref");
                    Element nestedElm = getFirstElement(e.getChildNodes());
                    if (StringUtils.hasText(ref)) {
                        beanBuilder.addConstructorArgReference(ref);
                    } else if (nestedElm != null) {
                        beanBuilder.addConstructorArgValue(
                                parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null));
                    } else {
                        throw new IllegalArgumentException(
                                "signal-event must either specify a 'ref' attribute or have a nested bean");
                    }
                }
                if (beanBuilder == null) {
                    throw new IllegalStateException("Unknow element: " + e.getLocalName());
                }
                children.add(beanBuilder.getBeanDefinition());
            }
        }
        factory.addPropertyValue("batch", children);
    }

    // find any kagent's for the current kbase and assign (only if this 
    // is a stateless session)
    if (sessionType.equals("stateless")) {
        for (String beanName : parserContext.getRegistry().getBeanDefinitionNames()) {
            BeanDefinition def = parserContext.getRegistry().getBeanDefinition(beanName);
            if (KnowledgeAgentBeanFactory.class.getName().equals(def.getBeanClassName())) {
                PropertyValue pvalue = def.getPropertyValues().getPropertyValue("kbase");
                RuntimeBeanReference tbf = (RuntimeBeanReference) pvalue.getValue();
                if (kbase.equals(tbf.getBeanName())) {
                    factory.addPropertyValue("knowledgeAgent", new RuntimeBeanReference(beanName));
                }
            }
        }
    }

    return factory.getBeanDefinition();
}

From source file:edu.internet2.middleware.shibboleth.common.config.relyingparty.RelyingPartyConfigurationBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element config, ParserContext parserContext, BeanDefinitionBuilder builder) {
    String rpId = getRelyingPartyId(config);
    log.info("Parsing configuration for relying party with id: {}", rpId);
    builder.addPropertyValue("relyingPartyId", rpId);

    String provider = DatatypeHelper.safeTrimOrNullString(config.getAttributeNS(null, "provider"));
    log.debug("Relying party configuration - provider ID: {}", provider);
    builder.addPropertyValue("providerId", provider);

    String authnMethod = DatatypeHelper
            .safeTrimOrNullString(config.getAttributeNS(null, "defaultAuthenticationMethod"));
    log.debug("Relying party configuration - default authentication method: {}", authnMethod);
    builder.addPropertyValue("defaultAuthenticationMethod", authnMethod);

    String secCredRef = DatatypeHelper
            .safeTrimOrNullString(config.getAttributeNS(null, "defaultSigningCredentialRef"));
    if (secCredRef != null) {
        log.debug("Relying party configuration - default signing credential: {}", secCredRef);
        builder.addPropertyReference("defaultSigningCredential", secCredRef);
    }//from ww  w .j a  v  a 2 s  . com

    Attr precedenceAttr = config.getAttributeNodeNS(null, "nameIDFormatPrecedence");
    if (precedenceAttr != null) {
        List<String> precedence = XMLHelper.getAttributeValueAsList(precedenceAttr);
        log.debug("Relying party configuration - NameID format precedence: {}", precedence);
        builder.addPropertyValue("nameIdFormatPrecedence", precedence);
    }

    List<Element> profileConfigs = XMLHelper.getChildElementsByTagNameNS(config,
            RelyingPartyNamespaceHandler.NAMESPACE, "ProfileConfiguration");
    if (profileConfigs != null && profileConfigs.size() > 0) {
        log.debug("Relying party configuration - {} profile configurations", profileConfigs.size());
        builder.addPropertyValue("profileConfigurations",
                SpringConfigurationUtils.parseInnerCustomElements(profileConfigs, parserContext));
    }
}

From source file:edu.internet2.middleware.shibboleth.common.config.attribute.filtering.AttributeFilterPolicyBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element config, ParserContext parserContext, BeanDefinitionBuilder builder) {
    super.doParse(config, parserContext, builder);

    String policyId = DatatypeHelper.safeTrimOrNullString(config.getAttributeNS(null, "id"));
    log.info("Parsing configuration for attribute filter policy {}", policyId);
    builder.addPropertyValue("policyId", policyId);
    List<Element> children;
    Map<QName, List<Element>> childrenMap = XMLHelper.getChildElements(config);

    children = childrenMap.get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "PolicyRequirementRule"));
    if (children != null && children.size() > 0) {
        builder.addPropertyValue("policyRequirement",
                SpringConfigurationUtils.parseInnerCustomElement(children.get(0), parserContext));
    } else {//from www. j  av a2 s  .com
        children = childrenMap
                .get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "PolicyRequirementRuleReference"));
        String reference = getAbsoluteReference(config, "PolicyRequirementRule",
                children.get(0).getTextContent());
        builder.addPropertyReference("policyRequirement", reference);
    }

    ManagedList attributeRules = new ManagedList();
    children = childrenMap.get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "AttributeRule"));
    if (children != null && children.size() > 0) {
        attributeRules.addAll(SpringConfigurationUtils.parseInnerCustomElements(children, parserContext));
    }

    children = childrenMap.get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "AttributeRuleReference"));
    if (children != null && children.size() > 0) {
        String reference;
        for (Element child : children) {
            reference = getAbsoluteReference(config, "AttributeRule", child.getTextContent());
            attributeRules.add(new RuntimeBeanReference(reference));
        }
    }

    builder.addPropertyValue("attributeRules", attributeRules);
}

From source file:edu.internet2.middleware.shibboleth.common.config.attribute.filtering.AttributeRuleBeanDefinitionParser.java

/** {@inheritDoc} */
protected void doParse(Element configElement, ParserContext parserContext, BeanDefinitionBuilder builder) {
    super.doParse(configElement, parserContext, builder);

    builder.addConstructorArgValue(/*  w w  w. j a  va 2s. com*/
            DatatypeHelper.safeTrimOrNullString(configElement.getAttributeNS(null, "attributeID")));

    Map<QName, List<Element>> children = XMLHelper.getChildElements(configElement);

    List<Element> permitValueRule = children
            .get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "PermitValueRule"));
    if (permitValueRule != null && !permitValueRule.isEmpty()) {
        builder.addPropertyValue("permitValueRule",
                SpringConfigurationUtils.parseInnerCustomElement(permitValueRule.get(0), parserContext));
    }

    List<Element> permitValueRuleRef = children
            .get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "PermitValueRuleReference"));
    if (permitValueRuleRef != null && !permitValueRuleRef.isEmpty()) {
        String reference = getAbsoluteReference(configElement, "PermitValueRule",
                permitValueRuleRef.get(0).getTextContent());
        builder.addPropertyReference("permitValueRule", reference);
    }

    List<Element> denyValueRule = children
            .get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "DenyValueRule"));
    if (denyValueRule != null && !denyValueRule.isEmpty()) {
        builder.addPropertyValue("denyValueRule",
                SpringConfigurationUtils.parseInnerCustomElement(denyValueRule.get(0), parserContext));
    }

    List<Element> denyValueRuleRef = children
            .get(new QName(AttributeFilterNamespaceHandler.NAMESPACE, "DenyValueRuleReference"));
    if (denyValueRuleRef != null && !denyValueRuleRef.isEmpty()) {
        String reference = getAbsoluteReference(configElement, "DenyValueRule",
                denyValueRuleRef.get(0).getTextContent());
        builder.addPropertyReference("denyValueRule", reference);
    }
}

From source file:org.agilemicroservices.autoconfigure.orm.RepositoryBeanDefinitionBuilder.java

/**
 * Builds a new {@link BeanDefinitionBuilder} from the given {@link BeanDefinitionRegistry} and {@link ResourceLoader}
 * ./*from  ww  w  .  j  av  a2s .  c  om*/
 *
 * @param configuration must not be {@literal null}.
 * @return
 */
public BeanDefinitionBuilder build(RepositoryConfiguration<?> configuration) {

    Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
    Assert.notNull(resourceLoader, "ResourceLoader must not be null!");

    String factoryBeanName = configuration.getRepositoryFactoryBeanName();
    factoryBeanName = StringUtils.hasText(factoryBeanName) ? factoryBeanName
            : extension.getRepositoryFactoryClassName();

    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(factoryBeanName);

    builder.getRawBeanDefinition().setSource(configuration.getSource());
    builder.addPropertyValue("repositoryInterface", configuration.getRepositoryInterface());
    builder.addPropertyValue("queryLookupStrategyKey", configuration.getQueryLookupStrategyKey());
    builder.addPropertyValue("lazyInit", configuration.isLazyInit());
    builder.addPropertyValue("repositoryBaseClass", configuration.getRepositoryBaseClassName());

    NamedQueriesBeanDefinitionBuilder definitionBuilder = new NamedQueriesBeanDefinitionBuilder(
            extension.getDefaultNamedQueryLocation());

    if (StringUtils.hasText(configuration.getNamedQueriesLocation())) {
        definitionBuilder.setLocations(configuration.getNamedQueriesLocation());
    }

    builder.addPropertyValue("namedQueries", definitionBuilder.build(configuration.getSource()));

    String customImplementationBeanName = registerCustomImplementation(configuration);

    if (customImplementationBeanName != null) {
        builder.addPropertyReference("customImplementation", customImplementationBeanName);
        builder.addDependsOn(customImplementationBeanName);
    }

    RootBeanDefinition evaluationContextProviderDefinition = new RootBeanDefinition(
            ExtensionAwareEvaluationContextProvider.class);
    evaluationContextProviderDefinition.setSource(configuration.getSource());

    builder.addPropertyValue("evaluationContextProvider", evaluationContextProviderDefinition);

    return builder;
}

From source file:com.dangdang.ddframe.rdb.sharding.spring.namespace.parser.ShardingJdbcDataSourceBeanDefinitionParser.java

private BeanDefinition parseTableRuleConfig(final Element tableElement) {
    BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(TableRuleConfig.class);
    String dynamic = tableElement
            .getAttribute(ShardingJdbcDataSourceBeanDefinitionParserTag.DYNAMIC_TABLE_ATTRIBUTE);
    if (!Strings.isNullOrEmpty(dynamic)) {
        factory.addPropertyValue("dynamic", dynamic);
    }//w w w.  ja  v a  2s .  c  o m
    String actualTables = tableElement
            .getAttribute(ShardingJdbcDataSourceBeanDefinitionParserTag.ACTUAL_TABLES_ATTRIBUTE);
    if (!Strings.isNullOrEmpty(actualTables)) {
        factory.addPropertyValue("actualTables", actualTables);
    }
    String dataSourceNames = tableElement
            .getAttribute(ShardingJdbcDataSourceBeanDefinitionParserTag.DATA_SOURCE_NAMES_ATTRIBUTE);
    if (!Strings.isNullOrEmpty(dataSourceNames)) {
        factory.addPropertyValue("dataSourceNames", dataSourceNames);
    }
    String databaseStrategy = tableElement
            .getAttribute(ShardingJdbcDataSourceBeanDefinitionParserTag.DATABASE_STRATEGY_ATTRIBUTE);
    if (!Strings.isNullOrEmpty(databaseStrategy)) {
        factory.addPropertyReference("databaseStrategy", databaseStrategy);
    }
    String tableStrategy = tableElement
            .getAttribute(ShardingJdbcDataSourceBeanDefinitionParserTag.TABLE_STRATEGY_ATTRIBUTE);
    if (!Strings.isNullOrEmpty(tableStrategy)) {
        factory.addPropertyReference("tableStrategy", tableStrategy);
    }
    return factory.getBeanDefinition();
}

From source file:org.synyx.hades.dao.config.DaoConfigDefinitionParser.java

/**
 * Registers a {@code GenericDaoFactoryBean} for a bean with the given name
 * and the provided configuration context. It is mainly used to construct
 * bean name, entity class name and DAO interface name.
 * /*from www .j a  v a  2s . c om*/
 * @param parserContext
 * @param name
 * @param context
 */
private void registerGenericDaoFactoryBean(final ParserContext parserContext, final DaoContext context) {

    Object beanSource = parserContext.extractSource(context.getElement());

    BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder
            .rootBeanDefinition(context.getDaoFactoryClassName());

    beanDefinitionBuilder.addPropertyValue("daoInterface", context.getInterfaceName());
    beanDefinitionBuilder.addPropertyValue("queryLookupStrategy", context.getQueryLookupStrategy());

    String entityManagerRef = context.getEntityManagerFactoryRef();

    if (null != entityManagerRef) {
        beanDefinitionBuilder.addPropertyValue("entityManager",
                getEntityManagerBeanDefinitionFor(entityManagerRef, beanSource));
    }

    beanDefinitionBuilder.addPropertyValue("transactionManager", context.getTransactionManagerRef());

    String customImplementationBeanName = registerCustomImplementation(context, parserContext, beanSource);

    if (customImplementationBeanName != null) {
        beanDefinitionBuilder.addPropertyReference("customDaoImplementation", customImplementationBeanName);
    }

    AbstractBeanDefinition beanDefinition = beanDefinitionBuilder.getBeanDefinition();
    beanDefinition.setSource(beanSource);

    LOG.debug("Registering Hades DAO: {} - DAO interface: {} - Factory: {} - Custom implementation: {}",
            new Object[] { context.getBeanName(), context.getInterfaceName(), context.getDaoFactoryClassName(),
                    customImplementationBeanName });

    BeanComponentDefinition definition = new BeanComponentDefinition(beanDefinition, context.getBeanName());

    parserContext.registerBeanComponent(definition);
}

From source file:net.shibboleth.idp.profile.spring.relyingparty.metadata.impl.HTTPMetadataProviderParser.java

/** {@inheritDoc} */
// Checkstyle: CyclomaticComplexity OFF
@Override//from   w  w w  . j  a v a2  s. co  m
protected void doNativeParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    super.doNativeParse(element, parserContext, builder);

    if (element.hasAttributeNS(null, "cacheDuration")) {
        log.error("{}: cacheDuration is not supported",
                parserContext.getReaderContext().getResource().getDescription());
        throw new BeanDefinitionParsingException(new Problem("cacheDuration is not supported",
                new Location(parserContext.getReaderContext().getResource())));
    }

    if (element.hasAttributeNS(null, "maintainExpiredMetadata")) {
        log.error("{}: maintainExpiredMetadata is not supported",
                parserContext.getReaderContext().getResource().getDescription());
        throw new BeanDefinitionParsingException(new Problem("maintainExpiredMetadata is not supported",
                new Location(parserContext.getReaderContext().getResource())));
    }

    boolean haveTLSTrustEngine = false;
    if (element.hasAttributeNS(null, "tlsTrustEngineRef")) {
        builder.addPropertyReference("tLSTrustEngine",
                StringSupport.trimOrNull(element.getAttributeNS(null, "tlsTrustEngineRef")));
        haveTLSTrustEngine = true;
    } else {
        BeanDefinition tlsTrustEngine = parseTLSTrustEngine(element, parserContext);
        if (tlsTrustEngine != null) {
            builder.addPropertyValue("tLSTrustEngine", tlsTrustEngine);
            haveTLSTrustEngine = true;
        }
    }

    if (element.hasAttributeNS(null, "httpClientRef")) {
        builder.addConstructorArgReference(
                StringSupport.trimOrNull(element.getAttributeNS(null, "httpClientRef")));
        if (element.hasAttributeNS(null, "requestTimeout")
                || element.hasAttributeNS(null, "disregardSslCertificate")
                || element.hasAttributeNS(null, "disregardTLSCertificate")
                || element.hasAttributeNS(null, "proxyHost") || element.hasAttributeNS(null, "proxyPort")
                || element.hasAttributeNS(null, "proxyUser") || element.hasAttributeNS(null, "proxyPassword")) {
            log.warn("httpClientRef overrides settings for requestTimeout, disregardSslCertificate, "
                    + "disregardTLSCertificate, proxyHost, proxyPort, proxyUser and proxyPassword");
        }
    } else {
        builder.addConstructorArgValue(buildHttpClient(element, parserContext, haveTLSTrustEngine));
    }
    builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, METADATA_URL)));

    if (element.hasAttributeNS(null, BASIC_AUTH_USER) || element.hasAttributeNS(null, BASIC_AUTH_PASSWORD)) {
        builder.addPropertyValue("basicCredentials", buildBasicCredentials(element));
    }

}

From source file:org.opencredo.esper.config.xml.EsperStatementParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {

    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .genericBeanDefinition(EsperNamespaceUtils.BASE_PACKAGE + ".EsperStatement");

    Object query = element.getAttribute(EsperNamespaceUtils.STATEMENT_QUERY_ATTRIBUTE);

    builder.addConstructorArgValue(query);

    ManagedSet listeners = null;/* w  w w  . j  a  v  a  2 s  . c om*/

    Element listenersElement = DomUtils.getChildElementByTagName(element, "listeners");
    if (listenersElement != null) {
        EsperListenerParser listenerParser = new EsperListenerParser();
        listeners = listenerParser.parseListeners(listenersElement, parserContext);
        if (listeners != null) {
            builder.addPropertyValue("listeners", listeners);
        } else {
            parserContext.getReaderContext().error("At least one 'listener' should be provided.",
                    listenersElement);
        }
    } else {

        Element subscriberElement = DomUtils.getChildElementByTagName(element, "subscriber");
        if (subscriberElement != null) {
            String subscriberRef = (String) subscriberElement.getAttribute("ref");
            if (StringUtils.hasText(subscriberRef)) {
                builder.addPropertyReference("subscriber", subscriberRef);
            }
        } else {
            parserContext.getReaderContext()
                    .error("At least one of 'listeners' or 'subscriber' should be provided.", element);
        }
    }

    return builder.getBeanDefinition();
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param element//  www . jav a  2s . c o  m
 * @return
 */
protected AbstractBeanDefinition prepareResourceManager(Element element, Engine engine,
        ParserContext parserContext) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ResourceSnapshotManager.class);
    builder.addConstructorArgValue(prepareResourceSelector(element, engine, parserContext));
    builder.addConstructorArgReference(getLoaderReference(element));
    builder.addConstructorArgValue(prepareResourceMonitor(element));
    Element handlers = selectSingleChildElement(element, "handlers", true);
    if (handlers != null) {
        String rejectedRef = handlers.getAttribute("rejected-ref");
        if (StringUtils.hasLength(rejectedRef)) {
            builder.addPropertyReference("rejectedResourceHandler", rejectedRef);
        }
    }
    return builder.getBeanDefinition();
}