Example usage for org.springframework.beans.factory.xml ParserContext extractSource

List of usage examples for org.springframework.beans.factory.xml ParserContext extractSource

Introduction

In this page you can find the example usage for org.springframework.beans.factory.xml ParserContext extractSource.

Prototype

@Nullable
    public Object extractSource(Object sourceCandidate) 

Source Link

Usage

From source file:org.spearal.spring.rest.xml.SpearalRestBeanDefinitionParser.java

static void registerInfrastructureComponent(Element element, ParserContext parserContext,
        BeanDefinitionBuilder componentBuilder, String beanName) {
    componentBuilder.getRawBeanDefinition().setSource(parserContext.extractSource(element));
    componentBuilder.getRawBeanDefinition().setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    parserContext/*from  w w w  . ja  v  a 2s .  com*/
            .registerBeanComponent(new BeanComponentDefinition(componentBuilder.getBeanDefinition(), beanName));
}

From source file:biz.c24.io.spring.config.BeanDefinitionUtils.java

/**
 * Returns the {@link AbstractBeanDefinition} built by the given builder applying the given source to it. The actual
 * source will be extracted using the given {@link ParserContext}.
 * //from w w w  .j  a  va  2  s .c o  m
 * @param builder
 * @param source
 * @param context
 * @return
 */
public static AbstractBeanDefinition getSourcedBeanDefinition(BeanDefinitionBuilder builder, Object source,
        ParserContext context) {

    Assert.notNull(builder);
    Assert.notNull(source);
    Assert.notNull(context);

    AbstractBeanDefinition definition = builder.getBeanDefinition();
    definition.setSource(context.extractSource(source));
    return definition;
}

From source file:com.ryantenney.metrics.spring.config.MetricRegistryBeanDefinitionParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    final Object source = parserContext.extractSource(element);
    final String name = element.getAttribute("name");
    if (StringUtils.hasText(name)) {
        final BeanDefinitionBuilder beanDefBuilder = build(SharedMetricRegistries.class, source);
        beanDefBuilder.setFactoryMethod("getOrCreate");
        beanDefBuilder.addConstructorArgValue(name);
        return beanDefBuilder.getBeanDefinition();
    } else {//from ww w. j  a  v  a 2  s .c o m
        return build(MetricRegistry.class, source).getBeanDefinition();
    }
}

From source file:biz.c24.io.spring.config.C24HttpMessageConverterBeanDefinitionParser.java

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

    Object source = context.extractSource(element);

    String modelRef = element.getAttribute("model-ref");
    modelRef = StringUtils.hasText(modelRef) ? modelRef : C24ModelBeanDefinitionParser.DEFAULT_BEAN_NAME;

    Set<BeanDefinition> formats = new ManagedSet<BeanDefinition>();
    for (Element formatElement : DomUtils.getChildElementsByTagName(element, "format")) {
        formats.add(formatParser.parse(formatElement, context));
    }/*from  w ww  . j  av  a  2  s .c o m*/

    // Create C24HttpMessageConverter bean
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(C24HttpMessageConverter.class);
    builder.addConstructorArgReference(modelRef);
    builder.addConstructorArgValue(formats);

    return getSourcedBeanDefinition(builder, source);
}

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

/**
 * {@inheritDoc}/*from w  w w  . j a va2s .c  om*/
 */
@Override
protected AbstractBeanDefinition parseInternal(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());

    BeanDefinitionBuilder builder = BeanDefinitionParserHelper.createBuilderFromConfigContext(configContext,
            source, defaultGenericRepositoryFactoryType);

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

    builder.addPropertyValue(GenericRepositoryConfigContext.PROXY_CLASS_PROPERTY,
            configContext.getProxyClass());

    return builder.getBeanDefinition();
}

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

/**
 * {@inheritDoc}// ww  w . ja v  a 2  s.co  m
 */
@Override
protected AbstractBeanDefinition parseInternal(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());

    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition().setAbstract(true);
    builder.getRawBeanDefinition().setSource(source);

    if (configContext.hasClazz()) {
        builder.getRawBeanDefinition().setBeanClassName(configContext.getClazz());
    } else {
        // no 'class' attribute is set, so use default bean class...
        builder.getRawBeanDefinition().setBeanClass(defaultGenericRepositoryFactoryType);
    }

    delegate.parsePropertyElements(element, builder.getRawBeanDefinition());

    return builder.getBeanDefinition();
}

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

protected void processHeaders(Element element, ManagedMap<String, Object> headers,
        ParserContext parserContext) {
    Object source = parserContext.extractSource(element);
    NodeList childNodes = element.getChildNodes();
    for (int i = 0; i < childNodes.getLength(); i++) {
        Node node = childNodes.item(i);
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            Element headerElement = (Element) node;
            String elementName = node.getLocalName();
            if ("header".equals(elementName)) {
                BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(
                        "biz.c24.io.spring.integration.transformer.C24XPathHeaderEnricher$XPathExpressionEvaluatingHeaderValueMessageProcessor");
                String expressionString = headerElement.getAttribute("xpath-statement");
                String expressionRef = headerElement.getAttribute("xpath-statement-ref");
                boolean isExpressionString = StringUtils.hasText(expressionString);
                boolean isExpressionRef = StringUtils.hasText(expressionRef);
                if (!(isExpressionString ^ isExpressionRef)) {
                    parserContext.getReaderContext().error(
                            "Exactly one of the 'xpath-statement' or 'xpath-statement-ref' attributes is required.",
                            source);// w w w. j a  v  a  2s.c o  m
                }
                if (isExpressionString) {
                    builder.addConstructorArgValue(expressionString);
                } else {
                    builder.addConstructorArgReference(expressionRef);
                }
                IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, headerElement, "evaluation-type");
                IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, headerElement, "overwrite");
                String headerName = headerElement.getAttribute("name");
                headers.put(headerName, builder.getBeanDefinition());
            }
        }
    }
}

From source file:org.synyx.hera.si.config.DynamicServiceActivatorParser.java

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

    Object source = parserContext.extractSource(element);

    String pluginType = element.getAttribute("plugin-type");
    String method = element.getAttribute("method");

    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .rootBeanDefinition(PluginRegistryAwareMessageHandler.class);
    builder.addConstructorArgValue(getRegistryBeanDefinition(pluginType, source));
    builder.addConstructorArgValue(pluginType);
    builder.addConstructorArgValue(method);

    String delimiter = element.getAttribute("delimiter");

    if (StringUtils.hasText(delimiter)) {
        builder.addPropertyValue("delimiterExpression", delimiter);
    }/* ww  w.j  a va  2  s  . c  om*/

    String invocationArguments = element.getAttribute("invocation-arguments");

    if (StringUtils.hasText(invocationArguments)) {
        builder.addPropertyValue("invocationArgumentsExpression", invocationArguments);
    }

    AbstractBeanDefinition definition = builder.getBeanDefinition();
    definition.setSource(source);

    return builder;
}

From source file:com.frank.search.solr.server.config.EmbeddedSolrServerBeanDefinitionParser.java

private AbstractBeanDefinition getSourcedBeanDefinition(BeanDefinitionBuilder builder, Element source,
        ParserContext context) {

    AbstractBeanDefinition definition = builder.getBeanDefinition();
    definition.setSource(context.extractSource(source));
    return definition;
}

From source file:com.mtgi.analytics.aop.config.v11.BtConfigBeanDefinitionParser.java

public BeanDefinition parse(Element element, ParserContext parserContext) {
    CompositeComponentDefinition component = new CompositeComponentDefinition(element.getNodeName(),
            parserContext.extractSource(element));
    parserContext.pushContainingComponent(component);
    try {/*ww w .j av  a 2 s.  c o m*/
        NodeList children = element.getChildNodes();
        for (int i = 0; i < children.getLength(); i++) {
            Node node = children.item(i);
            if (node.getNodeType() == Node.ELEMENT_NODE)
                parserContext.getDelegate().parseCustomElement((Element) node, null);
        }
        //no actual bean generated for bt:config.
        return null;
    } finally {
        parserContext.popAndRegisterContainingComponent();
    }
}