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.synyx.hera.core.config.PluginListDefinitionParser.java

/**
 * Returns the bean definition prepared by the builder and has connected it
 * to the {@code source} object./*from w  ww . j a v a2s .com*/
 * 
 * @param builder
 * @param source
 * @param context
 * @return
 */
private AbstractBeanDefinition getSourcedBeanDefinition(BeanDefinitionBuilder builder, Object source,
        ParserContext context) {

    AbstractBeanDefinition definition = builder.getRawBeanDefinition();
    definition.setSource(context.extractSource(source));

    return definition;
}

From source file:org.zalando.spring.data.businesskey.config.BusinessKeyBeanDefinitionParser.java

private void registerInfrastructureBeanWithId(final AbstractBeanDefinition def, final String id,
        final ParserContext context, final Element element) {

    def.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    def.setSource(context.extractSource(element));
    context.registerBeanComponent(new BeanComponentDefinition(def, id));
}

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

@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    final Object source = parserContext.extractSource(element);

    final CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(),
            source);//from w  w  w . ja va 2  s.co  m
    parserContext.pushContainingComponent(compDefinition);

    String metricsBeanName = element.getAttribute("metric-registry");
    if (!StringUtils.hasText(metricsBeanName)) {
        metricsBeanName = registerComponent(parserContext,
                build(MetricRegistry.class, source, ROLE_APPLICATION));
    }

    String healthCheckBeanName = element.getAttribute("health-check-registry");
    if (!StringUtils.hasText(healthCheckBeanName)) {
        healthCheckBeanName = registerComponent(parserContext,
                build(HealthCheckRegistry.class, source, ROLE_APPLICATION));
    }

    final ProxyConfig proxyConfig = new ProxyConfig();

    if (StringUtils.hasText(element.getAttribute("expose-proxy"))) {
        proxyConfig.setExposeProxy(Boolean.valueOf(element.getAttribute("expose-proxy")));
    }

    if (StringUtils.hasText(element.getAttribute("proxy-target-class"))) {
        proxyConfig.setProxyTargetClass(Boolean.valueOf(element.getAttribute("proxy-target-class")));
    }

    //@formatter:off

    registerComponent(parserContext,
            build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
                    .setFactoryMethod("exceptionMetered").addConstructorArgReference(metricsBeanName)
                    .addConstructorArgValue(proxyConfig));

    registerComponent(parserContext,
            build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
                    .setFactoryMethod("metered").addConstructorArgReference(metricsBeanName)
                    .addConstructorArgValue(proxyConfig));

    registerComponent(parserContext,
            build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE).setFactoryMethod("timed")
                    .addConstructorArgReference(metricsBeanName).addConstructorArgValue(proxyConfig));

    registerComponent(parserContext, build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
            .setFactoryMethod("gauge").addConstructorArgReference(metricsBeanName));

    registerComponent(parserContext, build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
            .setFactoryMethod("injectMetric").addConstructorArgReference(metricsBeanName));

    registerComponent(parserContext, build(MetricsBeanPostProcessorFactory.class, source, ROLE_INFRASTRUCTURE)
            .setFactoryMethod("healthCheck").addConstructorArgReference(healthCheckBeanName));

    //@formatter:on

    parserContext.popAndRegisterContainingComponent();

    return null;
}

From source file:org.jdal.vaadin.beans.DefaultsBeanDefinitionParser.java

/**
 * {@inheritDoc}//from  w ww .  ja  v a  2 s.  co m
 */
public BeanDefinition parse(Element element, ParserContext parserContext) {

    Object source = parserContext.extractSource(element);
    CompositeComponentDefinition ccd = new CompositeComponentDefinition("jdal-vaadin", source);

    ccd.addNestedComponent(registerPropertyEditors(element, parserContext));
    ccd.addNestedComponent(registerPaginatorView(element, parserContext));
    ccd.addNestedComponent(registerDefaultTableActions(element, parserContext));
    ccd.addNestedComponent(registerDefaultGuiFactory(element, parserContext));

    parserContext.getReaderContext().fireComponentRegistered(ccd);

    return null;
}

From source file:com.googlecode.ehcache.annotations.config.EhCacheConfigBeanDefinitionParser.java

public BeanDefinition parse(final Element element, final ParserContext parserContext) {
    final Object elementSource = parserContext.extractSource(element);

    final NodeList evictExpiredElements = element.getElementsByTagNameNS(element.getNamespaceURI(),
            XSD_ELEMENT__EVICT_EXPIRED_ELEMENTS);
    if (evictExpiredElements.getLength() > 1) {
        throw new BeanCreationException("Only one '" + XSD_ELEMENT__EVICT_EXPIRED_ELEMENTS + "' is allowed");
    }/*from www . j  a v  a  2 s.  c  om*/

    final int evictExpiredElementsLength = evictExpiredElements.getLength();
    if (evictExpiredElementsLength == 1) {
        final Element evictExpiredElement = (Element) evictExpiredElements.item(0);

        final String interval = evictExpiredElement.getAttribute(XSD_ATTRIBUTE__INTERVAL);

        List<CacheNameMatcher> cacheNameMatchers = parseEvictExpiredElement(evictExpiredElement);

        // get RuntimeBeanReference for cacheManager
        final RuntimeBeanReference cacheManagerReference = new RuntimeBeanReference(
                element.getAttribute(AnnotationDrivenEhCacheBeanDefinitionParser.XSD_ATTR__CACHE_MANAGER));

        // make RootBeanDefinition, RuntimeBeanReference for ExpiredElementEvictor instance, wire cacheNameMatchers reference and 
        final RootBeanDefinition expiredElementEvictor = new RootBeanDefinition(ExpiredElementEvictor.class);
        expiredElementEvictor.setSource(elementSource);
        expiredElementEvictor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);

        final MutablePropertyValues propertyValues = expiredElementEvictor.getPropertyValues();
        propertyValues.addPropertyValue("cacheManager", cacheManagerReference);
        propertyValues.addPropertyValue("cacheNameMatchers", cacheNameMatchers);
        propertyValues.addPropertyValue("interval", interval);

        // register expiredElementEvictor
        final BeanDefinitionRegistry registry = parserContext.getRegistry();
        registry.registerBeanDefinition(EHCACHE_CONFIG_EVICTION_TASK_BEAN_NAME, expiredElementEvictor);
    }

    return null;
}

From source file:org.devefx.httpmapper.spring.config.ListenersBeanDefinitionParser.java

public BeanDefinition parse(Element element, ParserContext parserContext) {
    CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(),
            parserContext.extractSource(element));
    parserContext.pushContainingComponent(compDefinition);

    RuntimeBeanReference pathMatcherRef = null;
    if (element.hasAttribute("path-matcher")) {
        pathMatcherRef = new RuntimeBeanReference(element.getAttribute("path-matcher"));
    }//from w ww. j  a  va  2 s  .  c o m

    List<Element> listeners = DomUtils.getChildElementsByTagName(element, "bean", "ref", "listener");
    for (Element listener : listeners) {
        RootBeanDefinition mappedListenerDef = new RootBeanDefinition(MappedListener.class);
        mappedListenerDef.setSource(parserContext.extractSource(listener));
        mappedListenerDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);

        ManagedList<String> includePatterns = null;
        ManagedList<String> excludePatterns = null;
        Object listenerBean;
        if ("listener".equals(listener.getLocalName())) {
            includePatterns = getIncludePatterns(listener, "mapping");
            excludePatterns = getIncludePatterns(listener, "exclude-mapping");
            Element beanElem = DomUtils.getChildElementsByTagName(listener, "bean", "ref").get(0);
            listenerBean = parserContext.getDelegate().parsePropertySubElement(beanElem, null);
        } else {
            listenerBean = parserContext.getDelegate().parsePropertySubElement(listener, null);
        }
        mappedListenerDef.getConstructorArgumentValues().addIndexedArgumentValue(0, includePatterns);
        mappedListenerDef.getConstructorArgumentValues().addIndexedArgumentValue(1, excludePatterns);
        mappedListenerDef.getConstructorArgumentValues().addIndexedArgumentValue(2, listenerBean);

        if (pathMatcherRef != null) {
            mappedListenerDef.getPropertyValues().add("pathMatcher", pathMatcherRef);
        }

        String beanName = parserContext.getReaderContext().registerWithGeneratedName(mappedListenerDef);
        parserContext.registerComponent(new BeanComponentDefinition(mappedListenerDef, beanName));
    }

    parserContext.popAndRegisterContainingComponent();
    return null;
}

From source file:org.jmxtrans.embedded.spring.EmbeddedJmxTransBeanDefinitionParser.java

@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    builder.setRole(BeanDefinition.ROLE_APPLICATION);
    builder.getRawBeanDefinition().setSource(parserContext.extractSource(element));

    if (element.hasAttribute(IGNORE_CONFIGURATION_NOT_FOUND_ATTRIBUTE)) {
        builder.addPropertyValue("ignoreConfigurationNotFound",
                element.getAttribute(IGNORE_CONFIGURATION_NOT_FOUND_ATTRIBUTE));
    }//from www.j  av  a  2s.com
    List<String> configurationUrls = new ArrayList<String>();
    if (element.hasAttribute(CONFIGURATION_ATTRIBUTE)) {
        String configurationUrl = element.getAttribute(CONFIGURATION_ATTRIBUTE);
        logger.debug("Add configuration from attribute {}", configurationUrl);
        configurationUrls.add(configurationUrl);
    }

    NodeList configurationNodeList = element.getElementsByTagNameNS(element.getNamespaceURI(),
            CONFIGURATION_ATTRIBUTE);
    for (int i = 0; i < configurationNodeList.getLength(); i++) {
        Node node = configurationNodeList.item(i);
        if (node instanceof Element) {
            String configurationUrl = node.getTextContent();
            logger.debug("Add configuration from attribute {}", configurationUrl);
            configurationUrls.add(configurationUrl);
        } else {
            throw new EmbeddedJmxTransException("Invalid configuration child element " + node);
        }

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

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

@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    final CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(),
            parserContext.extractSource(element));
    parserContext.pushContainingComponent(compDefinition);

    final String metricRegistryBeanName = element.getAttribute("metric-registry");
    if (!StringUtils.hasText(metricRegistryBeanName)) {
        throw new RuntimeException(); // TODO
    }/*from   www . jav  a  2  s .co m*/
    final RuntimeBeanReference metricRegistryBeanRef = new RuntimeBeanReference(metricRegistryBeanName);

    final List<Element> metricElements = DomUtils.getChildElementsByTagName(element,
            new String[] { "bean", "ref" });
    for (Element metricElement : metricElements) {
        // Get the name attribute and remove it (to prevent Spring from looking for a BeanDefinitionDecorator)
        final String name = metricElement.getAttributeNS(METRICS_NAMESPACE, "name");
        if (name != null) {
            metricElement.removeAttributeNS(METRICS_NAMESPACE, "name");
        }

        final Object metric = parserContext.getDelegate().parsePropertySubElement(metricElement, null);

        final RootBeanDefinition metricRegistererDef = new RootBeanDefinition(MetricRegisterer.class);
        metricRegistererDef.setSource(parserContext.extractSource(metricElement));
        metricRegistererDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);

        final ConstructorArgumentValues args = metricRegistererDef.getConstructorArgumentValues();
        args.addIndexedArgumentValue(0, metricRegistryBeanRef);
        args.addIndexedArgumentValue(1, name);
        args.addIndexedArgumentValue(2, metric);

        final String beanName = parserContext.getReaderContext().registerWithGeneratedName(metricRegistererDef);
        parserContext.registerComponent(new BeanComponentDefinition(metricRegistererDef, beanName));
    }

    parserContext.popAndRegisterContainingComponent();

    return null;
}

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

private void registerInfrastructureBeanWithId(AbstractBeanDefinition def, String id, ParserContext context,
        Element element) {/*from   w  w w.j  ava2 s. c  o  m*/

    // Mark as infrastructure bean and attach source location.
    def.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
    def.setSource(context.extractSource(element));
    context.registerBeanComponent(new BeanComponentDefinition(def, id));
}

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

/**
 * {@inheritDoc}/*w ww  . ja  va  2  s .c  om*/
 */
public BeanDefinition parse(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());

    GenericRepositoryBeanDefinitionScanner scanner = configureScanner(configContext, parserContext);

    parseBeanNameGenerator(configContext, parserContext);

    String[] basePackages = StringUtils.commaDelimitedListToStringArray(configContext.getBasePackage());
    for (String basePackage : basePackages) {
        Set<BeanDefinition> candidates = scanner.findCandidateComponents(basePackage);
        for (BeanDefinition candidate : candidates) {
            BeanDefinitionBuilder builder = BeanDefinitionParserHelper
                    .createBuilderFromConfigContext(configContext, source, defaultGenericRepositoryFactoryType);

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

            builder.addPropertyValue(GenericRepositoryConfigContext.PROXY_CLASS_PROPERTY,
                    candidate.getBeanClassName());

            String beanName = beanNameGenerator.generateBeanName(candidate, parserContext.getRegistry());
            parserContext
                    .registerBeanComponent(new BeanComponentDefinition(builder.getBeanDefinition(), beanName));
            logger.debug("Registered generic repository bean '{}'", beanName);
        }
    }

    return null;
}