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

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

Introduction

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

Prototype

public final BeanDefinitionRegistry getRegistry() 

Source Link

Usage

From source file:com.clican.pluto.dataprocess.spring.parser.DeployParser.java

public BeanDefinition parse(Element element, ParserContext parserContext) {
    BeanDefinitionRegistry bdr = parserContext.getRegistry();
    RootBeanDefinition beanDef = new RootBeanDefinition();
    beanDef.setAbstract(false);/*w ww.  j  a v  a  2  s.c  om*/
    beanDef.setBeanClass(Deploy.class);
    beanDef.setLazyInit(false);
    beanDef.setAutowireMode(Autowire.BY_NAME.value());
    String id = element.getAttribute("id");
    if (StringUtils.isEmpty(id)) {
        id = "dplDeploy#" + element.hashCode();
    }
    bdr.registerBeanDefinition(id, beanDef);

    this.setBeanDefinitionStringProperty("name", beanDef, element);
    this.setBeanDefinitionStringProperty("url", beanDef, element);
    this.setBeanDefinitionStringProperty("propertyResources", beanDef, element);

    return beanDef;
}

From source file:eap.config.AspectJAutoProxyBeanDefinitionParser.java

private void extendBeanDefinition(Element element, ParserContext parserContext) {
    BeanDefinition beanDef = parserContext.getRegistry()
            .getBeanDefinition(AopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAME);
    if (element.hasChildNodes()) {
        addIncludePatterns(element, parserContext, beanDef);
    }//from w  ww. j a  v a2  s . com
}

From source file:net.danielkvasnicka.flower.core.FlowerURLMappingBeanDefinitionDecorator.java

/**
 * @see org.springframework.beans.factory.xml.BeanDefinitionDecorator#decorate(org.w3c.dom.Node, org.springframework.beans.factory.config.BeanDefinitionHolder, org.springframework.beans.factory.xml.ParserContext)
 *//*from  ww w  .  j  a  v  a  2  s . co  m*/
@SuppressWarnings("unchecked")
@Override
public BeanDefinitionHolder decorate(final Node node, BeanDefinitionHolder bdef, ParserContext parseCtx) {

    final BeanDefinition urlMappingHolderBeanDefinition = parseCtx.getRegistry()
            .getBeanDefinition(Constants.URL_MAPPING_HOLDER_BEAN_NAME);
    final PropertyValue propertyVal = urlMappingHolderBeanDefinition.getPropertyValues()
            .getPropertyValue(Constants.URL_MAPPING_HOLDER_PROPERTY);
    Map<String, String> urlMapping;

    if (propertyVal == null) {
        urlMapping = new HashMap<String, String>();
    } else {
        urlMapping = (Map<String, String>) propertyVal.getValue();
    }

    urlMapping.put(node.getNodeValue(), bdef.getBeanName());
    urlMappingHolderBeanDefinition.getPropertyValues()
            .addPropertyValue(new PropertyValue("urlMapping", urlMapping));

    return bdef;
}

From source file:de.itsvs.cwtrpc.controller.config.BaseServiceConfigParser.java

protected void createDefaultRpcTokenValidatorBeanDefinition(Element element, ParserContext parserContext,
        String rpcTokenValidatorName) {
    if (!parserContext.getRegistry().containsBeanDefinition(rpcTokenValidatorName)) {
        final RootBeanDefinition bd;

        if (log.isInfoEnabled()) {
            log.info("Registering default RPC token validator with name '" + rpcTokenValidatorName + "'");
        }//from  w w w  .j av a  2s. co  m
        bd = new RootBeanDefinition(DefaultXsrfTokenService.class);
        bd.setSource(parserContext.extractSource(element));
        bd.setLazyInit(true);
        parserContext.registerBeanComponent(new BeanComponentDefinition(bd, rpcTokenValidatorName));
    }
}

From source file:org.qi4j.library.spring.bootstrap.internal.application.Qi4jBootstrapBeanDefinitionParser.java

private void registerBean(ParserContext aParserContext, BeanDefinition aBeanDefinition) {
    BeanDefinitionRegistry registry = aParserContext.getRegistry();
    registry.registerBeanDefinition(BEAN_ID_QI4J_APPLICATION, aBeanDefinition);
}

From source file:eap.config.AnnotationDrivenCacheBeanDefinitionParser.java

/**
 * Registers a//  www  .  j a va  2  s  .c  o  m
 * <pre>
 * <bean id="cacheAspect" class="org.springframework.cache.aspectj.AnnotationCacheAspect" factory-method="aspectOf">
 *   <property name="cacheManager" ref="cacheManager"/>
 *   <property name="keyGenerator" ref="keyGenerator"/>
 * </bean>
 *
 * </pre>
 * @param element
 * @param parserContext
 */
private void registerCacheAspect(Element element, ParserContext parserContext) {
    if (!parserContext.getRegistry().containsBeanDefinition(CACHE_ASPECT_BEAN_NAME)) {
        RootBeanDefinition def = new RootBeanDefinition();
        def.setBeanClassName(CACHE_ASPECT_CLASS_NAME);
        def.setFactoryMethodName("aspectOf");
        parseCacheManagerProperty(element, def);
        //         CacheNamespaceHandler.parseKeyGenerator(element, def);
        ReflectUtil.invokeMethod(CacheNamespaceHandler.class, "parseKeyGenerator",
                new Class<?>[] { Element.class, BeanDefinition.class }, new Object[] { element, def });
        parserContext.registerBeanComponent(new BeanComponentDefinition(def, CACHE_ASPECT_BEAN_NAME));
    }
}

From source file:com.clican.pluto.dataprocess.spring.parser.AbstractProcessorParser.java

@SuppressWarnings({ "unchecked", "rawtypes" })
public BeanDefinition parse(Element element, ParserContext parserContext) {
    BeanDefinitionRegistry bdr = parserContext.getRegistry();
    RootBeanDefinition beanDef = new RootBeanDefinition();
    beanDef.setDestroyMethodName("destroy");
    beanDef.setAbstract(false);//w w  w.java 2s  . co m
    beanDef.setBeanClass(getDataProcessorClass());
    beanDef.setLazyInit(false);
    beanDef.setAutowireMode(Autowire.BY_NAME.value());
    String id = element.getAttribute("id");
    if (bdr.containsBeanDefinition(id)) {
        throw new RuntimeException("id[" + id + "]??");
    }
    bdr.registerBeanDefinition(id, beanDef);
    beanDef.getPropertyValues().addPropertyValue("id", id);
    String startProcessor = element.getAttribute("startProcessor");
    boolean sp = false;
    if (StringUtils.isNotEmpty(startProcessor)) {
        sp = Boolean.parseBoolean(startProcessor);
    }
    beanDef.getPropertyValues().addPropertyValue("startProcessor", sp);

    String transaction = element.getAttribute("transaction");
    if (StringUtils.isNotEmpty(transaction)) {
        beanDef.getPropertyValues().addPropertyValue("transaction", transaction);
    } else if (sp) {
        beanDef.getPropertyValues().addPropertyValue("transaction", TransactionMode.BEGIN.getMode());
    }
    String cloneContext = element.getAttribute("cloneContext");
    if (StringUtils.isNotEmpty(cloneContext)) {
        beanDef.getPropertyValues().addPropertyValue("cloneContext", Boolean.parseBoolean(cloneContext));
    }
    String propagations = element.getAttribute("propagations");
    if (StringUtils.isNotEmpty(propagations)) {
        List<String> propataionList = new ArrayList<String>();
        for (String propagation : propagations.split(",")) {
            propataionList.add(propagation);
        }
        beanDef.getPropertyValues().addPropertyValue("propagations", propataionList);
    }
    String nextDataProcessors = element.getAttribute("nextDataProcessors");
    if (StringUtils.isNotEmpty(nextDataProcessors)) {
        List nextDataProcessList = new ManagedList();
        for (String nextDataProcess : nextDataProcessors.split(",")) {
            nextDataProcess = nextDataProcess.trim();
            nextDataProcessList.add(new RuntimeBeanReference(nextDataProcess));
        }
        beanDef.getPropertyValues().addPropertyValue("nextDataProcessors", nextDataProcessList);
    }

    customiseBeanDefinition(beanDef, element, parserContext);

    return beanDef;
}

From source file:org.springmodules.cache.config.CachingListenerValidatorImpl.java

/**
 * @see CachingListenerValidator#validate(Object, int, ParserContext)
 *//*w ww.j  a va2s . c  om*/
public void validate(Object cachingListener, int index, ParserContext parserContext)
        throws IllegalStateException {
    BeanDefinitionRegistry registry = parserContext.getRegistry();
    BeanDefinition beanDefinition = null;

    if (cachingListener instanceof RuntimeBeanReference) {
        String beanName = ((RuntimeBeanReference) cachingListener).getBeanName();
        beanDefinition = registry.getBeanDefinition(beanName);

    } else if (cachingListener instanceof BeanDefinitionHolder) {
        beanDefinition = ((BeanDefinitionHolder) cachingListener).getBeanDefinition();
    } else {
        throw new IllegalStateException("The caching listener reference/holder [" + index
                + "] should be an instance of <" + RuntimeBeanReference.class.getName() + "> or <"
                + BeanDefinitionHolder.class.getName() + ">");
    }

    Class expectedClass = CachingListener.class;
    Class actualClass = resolveBeanClass(beanDefinition);

    if (!expectedClass.isAssignableFrom(actualClass)) {
        throw new IllegalStateException("The caching listener [" + index + "] should be an instance of <"
                + expectedClass.getName() + ">");
    }
}

From source file:org.mybatis.spring.config.MapperScannerBeanDefinitionParser.java

/**
 * {@inheritDoc}/*  w  ww.j  av  a 2  s  . co m*/
 */
@Override
public synchronized BeanDefinition parse(Element element, ParserContext parserContext) {
    ClassPathMapperScanner scanner = new ClassPathMapperScanner(parserContext.getRegistry());
    ClassLoader classLoader = scanner.getResourceLoader().getClassLoader();
    XmlReaderContext readerContext = parserContext.getReaderContext();
    scanner.setResourceLoader(readerContext.getResourceLoader());
    try {
        String annotationClassName = element.getAttribute(ATTRIBUTE_ANNOTATION);
        if (StringUtils.hasText(annotationClassName)) {
            @SuppressWarnings("unchecked")
            Class<? extends Annotation> markerInterface = (Class<? extends Annotation>) classLoader
                    .loadClass(annotationClassName);
            scanner.setAnnotationClass(markerInterface);
        }
        String markerInterfaceClassName = element.getAttribute(ATTRIBUTE_MARKER_INTERFACE);
        if (StringUtils.hasText(markerInterfaceClassName)) {
            Class<?> markerInterface = classLoader.loadClass(markerInterfaceClassName);
            scanner.setMarkerInterface(markerInterface);
        }
        String nameGeneratorClassName = element.getAttribute(ATTRIBUTE_NAME_GENERATOR);
        if (StringUtils.hasText(nameGeneratorClassName)) {
            Class<?> nameGeneratorClass = classLoader.loadClass(nameGeneratorClassName);
            BeanNameGenerator nameGenerator = BeanUtils.instantiateClass(nameGeneratorClass,
                    BeanNameGenerator.class);
            scanner.setBeanNameGenerator(nameGenerator);
        }
    } catch (Exception ex) {
        readerContext.error(ex.getMessage(), readerContext.extractSource(element), ex.getCause());
    }
    String sqlSessionTemplateBeanName = element.getAttribute(ATTRIBUTE_TEMPLATE_REF);
    scanner.setSqlSessionTemplateBeanName(sqlSessionTemplateBeanName);
    String sqlSessionFactoryBeanName = element.getAttribute(ATTRIBUTE_FACTORY_REF);
    scanner.setSqlSessionFactoryBeanName(sqlSessionFactoryBeanName);
    scanner.registerFilters();
    String basePackage = element.getAttribute(ATTRIBUTE_BASE_PACKAGE);
    scanner.scan(StringUtils.tokenizeToStringArray(basePackage,
            ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS));
    return null;
}

From source file:org.fishwife.jrugged.spring.config.MonitorMethodInterceptorDefinitionDecorator.java

/**
 * Method called by Spring when it encounters the custom jrugged:methods
 * attribute. Registers the performance monitor and interceptor.
 *///from  w ww  .  j  a va  2s .c  o  m
public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext context) {

    String beanName = holder.getBeanName();
    BeanDefinitionRegistry registry = context.getRegistry();
    registerPerformanceMonitor(beanName, registry);
    registerInterceptor(source, beanName, registry);

    return holder;
}