List of usage examples for org.springframework.beans.factory.xml ParserContext extractSource
@Nullable
public Object extractSource(Object sourceCandidate)
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; }