List of usage examples for org.springframework.beans.factory.xml ParserContext getReaderContext
public final XmlReaderContext getReaderContext()
From source file:com.googlecode.ehcache.annotations.config.AnnotationDrivenEhCacheBeanDefinitionParser.java
/** * Create {@link MethodInterceptor} that is applies the caching logic to advised methods. * //from w ww . j a v a2 s .c o m * @return Reference to the {@link MethodInterceptor}. Should never be null. */ protected RuntimeBeanReference setupInterceptor(Element element, ParserContext parserContext, Object elementSource, RuntimeBeanReference cacheableAttributeSourceRuntimeReference) { final RootBeanDefinition interceptor = new RootBeanDefinition(EhCacheInterceptor.class); interceptor.setSource(elementSource); interceptor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); final MutablePropertyValues propertyValues = interceptor.getPropertyValues(); propertyValues.addPropertyValue("cacheAttributeSource", cacheableAttributeSourceRuntimeReference); final XmlReaderContext readerContext = parserContext.getReaderContext(); final String interceptorBeanName = readerContext.registerWithGeneratedName(interceptor); return new RuntimeBeanReference(interceptorBeanName); }
From source file:com.inspiresoftware.lib.dto.geda.config.AnnotationDrivenGeDABeanDefinitionParser.java
protected RuntimeBeanReference setupGeDAInterceptor(final ParserContext parserContext, final Object elementSource, final RuntimeBeanReference defaultSupport, final RuntimeBeanReference defaultResolver) { final RootBeanDefinition defaultInterceptor = new RootBeanDefinition(GeDAInterceptor.class); defaultInterceptor.setSource(elementSource); defaultInterceptor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); final MutablePropertyValues propertyValues = defaultInterceptor.getPropertyValues(); propertyValues.addPropertyValue("support", defaultSupport); propertyValues.addPropertyValue("resolver", defaultResolver); final XmlReaderContext readerContext = parserContext.getReaderContext(); final String beanName = readerContext.registerWithGeneratedName(defaultInterceptor); return new RuntimeBeanReference(beanName); }
From source file:org.smf4j.spring.RegistryNodeTemplateDefinitionParser.java
protected ManagedList<RuntimeBeanReference> createGroupings(ParserContext context, Element element, String ranges, String suffixes) { ManagedList<RuntimeBeanReference> groupings = new ManagedList<RuntimeBeanReference>(); String[] rangeArray = StringUtils.commaDelimitedListToStringArray(ranges); String[] suffixArray = StringUtils.commaDelimitedListToStringArray(suffixes); if (rangeArray.length != suffixArray.length) { context.getReaderContext().error("'ranges' and 'suffixes' must have the same number of " + "elements", context.extractSource(element)); return null; }/* w w w. j a v a 2 s .co m*/ for (int i = 0; i < rangeArray.length; i++) { String range = rangeArray[i]; String suffix = suffixArray[i]; BeanDefinitionBuilder bdb = getBdb(RANGEGROUP_GROUPING_CLASS); bdb.addPropertyValue(RANGE_ATTR, range); bdb.addPropertyValue(SUFFIX_ATTR, suffix); String groupId = context.getReaderContext().registerWithGeneratedName(bdb.getBeanDefinition()); groupings.add(new RuntimeBeanReference(groupId)); } return groupings; }
From source file:eap.config.ConfigBeanDefinitionParser.java
/** * Parses the supplied {@code <advisor>} element and registers the resulting * {@link org.springframework.aop.Advisor} and any resulting {@link org.springframework.aop.Pointcut} * with the supplied {@link BeanDefinitionRegistry}. *//*from ww w .ja v a2 s . com*/ private void parseAdvisor(Element advisorElement, ParserContext parserContext) { AbstractBeanDefinition advisorDef = createAdvisorBeanDefinition(advisorElement, parserContext); String id = advisorElement.getAttribute(ID); try { this.parseState.push(new AdvisorEntry(id)); String advisorBeanName = id; if (StringUtils.hasText(advisorBeanName)) { parserContext.getRegistry().registerBeanDefinition(advisorBeanName, advisorDef); } else { advisorBeanName = parserContext.getReaderContext().registerWithGeneratedName(advisorDef); } Object pointcut = parsePointcutProperty(advisorElement, parserContext); if (pointcut instanceof BeanDefinition) { advisorDef.getPropertyValues().add(POINTCUT, pointcut); parserContext.registerComponent( new AdvisorComponentDefinition(advisorBeanName, advisorDef, (BeanDefinition) pointcut)); } else if (pointcut instanceof String) { advisorDef.getPropertyValues().add(POINTCUT, new RuntimeBeanReference((String) pointcut)); parserContext.registerComponent(new AdvisorComponentDefinition(advisorBeanName, advisorDef)); } } finally { this.parseState.pop(); } }
From source file:org.smf4j.spring.RegistryNodeTemplateDefinitionParser.java
protected String createRatio(ParserContext context, Element element) { String name = getName(context, element); String numerator = element.getAttribute(NUMERATOR_ATTR); String denominator = element.getAttribute(DENOMINATOR_ATTR); String units = element.getAttribute(UNITS_ATTR); BeanDefinitionBuilder bdb = getBdb(RATIO_CLASS); bdb.addPropertyValue(UNITS_ATTR, units); bdb.addPropertyValue(NUMERATOR_ATTR, numerator); bdb.addPropertyValue(DENOMINATOR_ATTR, denominator); String ratioId = context.getReaderContext().registerWithGeneratedName(bdb.getBeanDefinition()); // Create proxy that carries name BeanDefinitionBuilder calcProxyBdb = getBdb(RegistryNodeChildProxy.class); calcProxyBdb.addPropertyValue(NAME_ATTR, name); calcProxyBdb.addPropertyValue(CHILD_ATTR, ratioId); return context.getReaderContext().registerWithGeneratedName(calcProxyBdb.getBeanDefinition()); }
From source file:org.apache.ftpserver.config.spring.CommandFactoryBeanDefinitionParser.java
/** * {@inheritDoc}/*from w ww .j ava 2 s . c o m*/ */ @Override protected void doParse(final Element element, final ParserContext parserContext, final BeanDefinitionBuilder builder) { BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder .genericBeanDefinition(CommandFactoryFactory.class); ManagedMap commands = new ManagedMap(); List<Element> childs = SpringUtil.getChildElements(element); for (Element commandElm : childs) { String name = commandElm.getAttribute("name"); Object bean = SpringUtil.parseSpringChildElement(commandElm, parserContext, builder); commands.put(name, bean); } factoryBuilder.addPropertyValue("commandMap", commands); if (StringUtils.hasText(element.getAttribute("use-default"))) { factoryBuilder.addPropertyValue("useDefaultCommands", Boolean.valueOf(element.getAttribute("use-default"))); } BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition(); String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition); BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId); registerBeanDefinition(factoryHolder, parserContext.getRegistry()); // set the factory on the listener bean builder.getRawBeanDefinition().setFactoryBeanName(factoryId); builder.getRawBeanDefinition().setFactoryMethodName("createCommandFactory"); }
From source file:com.predic8.membrane.core.config.spring.AbstractParser.java
protected void handleChildElement(Element ele, ParserContext parserContext, BeanDefinitionBuilder builder) { BeanDefinitionParserDelegate delegate = parserContext.getDelegate(); try {//from w ww . j av a 2 s . c o m Object o = delegate.parsePropertySubElement(ele, builder.getBeanDefinition()); String clazz = null; if (o instanceof BeanDefinitionHolder) { clazz = ((BeanDefinitionHolder) o).getBeanDefinition().getBeanClassName(); } else if (o instanceof RuntimeBeanReference) { clazz = parserContext.getRegistry().getBeanDefinition(((RuntimeBeanReference) o).getBeanName()) .getBeanClassName(); } else if (o instanceof RuntimeBeanNameReference) { clazz = parserContext.getRegistry().getBeanDefinition(((RuntimeBeanNameReference) o).getBeanName()) .getBeanClassName(); } else { parserContext.getReaderContext().error("Don't know how to get bean class from " + o.getClass(), ele); } handleChildObject(ele, parserContext, builder, Class.forName(clazz), o); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } }
From source file:org.urbantower.j4s.spring.ServerParser.java
@Override public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(SpringServer.class); //set port/*from ww w. ja v a 2 s . c om*/ String port = element.getAttribute("http-port"); builder.addPropertyValue("httpPort", Integer.parseInt(port)); //parse & set handlers ManagedList<BeanDefinition> handlers = new ManagedList<>(); if (element.hasAttribute("handler")) { String handlerRef = element.getAttribute("handler"); builder.addPropertyValue("handler", new RuntimeBeanReference(handlerRef)); } else { List<Element> childs = DomUtils.getChildElements(element); if (childs != null && childs.size() > 0) { BeanDefinition handlerDef = parserContext.getDelegate().parseCustomElement(childs.get(0), builder.getBeanDefinition()); builder.addPropertyValue("handler", handlerDef); } } //get id String id = parserContext.getReaderContext().generateBeanName(builder.getBeanDefinition()); if (element.hasAttribute("id")) { id = element.getAttribute("id"); } //get the thread-pool if (element.hasAttribute("thread-pool")) { builder.addConstructorArgValue(new RuntimeBeanReference(element.getAttribute("thread-pool"))); } //register server def. parserContext.getRegistry().registerBeanDefinition(id, builder.getBeanDefinition()); return builder.getBeanDefinition(); }
From source file:org.apache.smscserver.config.spring.CommandFactoryBeanDefinitionParser.java
/** * {@inheritDoc}/*from w ww.j av a 2s . co m*/ */ @SuppressWarnings("unchecked") @Override protected void doParse(final Element element, final ParserContext parserContext, final BeanDefinitionBuilder builder) { BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder .genericBeanDefinition(CommandFactoryFactory.class); ManagedMap commands = new ManagedMap(); List<Element> childs = SpringUtil.getChildElements(element); for (Element commandElm : childs) { String name = commandElm.getAttribute("protocol-id"); Object bean = SpringUtil.parseSpringChildElement(commandElm, parserContext, builder); commands.put(name, bean); } factoryBuilder.addPropertyValue("commandMap", commands); if (StringUtils.hasText(element.getAttribute("use-default"))) { factoryBuilder.addPropertyValue("useDefaultCommands", Boolean.valueOf(element.getAttribute("use-default"))); } BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition(); String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition); BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId); this.registerBeanDefinition(factoryHolder, parserContext.getRegistry()); // set the factory on the listener bean builder.getRawBeanDefinition().setFactoryBeanName(factoryId); builder.getRawBeanDefinition().setFactoryMethodName("createCommandFactory"); }
From source file:biz.c24.io.spring.config.C24ModelBeanDefinitionParser.java
/** * Classpath scans the given base package for subclasses of {@link biz.c24.io.api.data.Element} whose names end on * {@code DocumentRootElement}./*w ww .j a v a2 s.c om*/ * * @param basePackage * @param context * @param source * @return */ private AbstractBeanDefinition getC24ModelFromPackage(String basePackage, ParserContext context, Object source) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( false); provider.addIncludeFilter(new TypeFilter() { private final TypeFilter nameFilter = new RegexPatternTypeFilter( Pattern.compile(".*DocumentRootElement")); private final TypeFilter typeFilter = new AssignableTypeFilter(biz.c24.io.api.data.Element.class); public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { return nameFilter.match(metadataReader, metadataReaderFactory) && typeFilter.match(metadataReader, metadataReaderFactory); } }); Set<BeanDefinition> result = provider.findCandidateComponents(basePackage); if (result.size() != 1) { context.getReaderContext().error("Found none or multiple classes ending on 'DocumentRootElement'!", source); } String elementClassName = result.iterator().next().getBeanClassName(); return getC24ModelFromElement(elementClassName, context, source); }