Example usage for org.springframework.beans.factory.xml BeanDefinitionParserDelegate BeanDefinitionParserDelegate

List of usage examples for org.springframework.beans.factory.xml BeanDefinitionParserDelegate BeanDefinitionParserDelegate

Introduction

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

Prototype

public BeanDefinitionParserDelegate(XmlReaderContext readerContext) 

Source Link

Document

Create a new BeanDefinitionParserDelegate associated with the supplied XmlReaderContext .

Usage

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

/**
 * {@inheritDoc}//from   w w w.j  a v a2s.  c o  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 = 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}/*from w ww . j  a  v a2  s.  c  o 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:org.codehaus.grepo.core.config.GenericRepositoryScanBeanDefinitionParser.java

/**
 * {@inheritDoc}/*from  www . j a  v  a 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;
}

From source file:org.seasar.dao.spring.autoregister.AbstractBeanAutoRegister.java

protected void register(final String packageName, final String shortClassName) {

    final String className = ClassUtil.concatName(packageName, shortClassName);

    final Class targetClass = ClassUtil.forName(className);
    Class enhancedClass;/* ww w.j  a v  a 2s . c o  m*/

    final AspectWeaver weaver = new AspectWeaver(targetClass, null);

    final Method[] methods = targetClass.getMethods();
    for (int i = 0; i < methods.length; ++i) {
        final Method method = methods[i];
        if (isBridgeMethod(method)) {
            continue;
        }

        final List interceptorList = new ArrayList();
        for (int j = 0; j < interceptorNames.length; j++) {
            final MethodInterceptor interceptor = (MethodInterceptor) getBeanFactory()
                    .getBean(interceptorNames[j]);
            interceptorList.add(interceptor);
        }
        if (!isApplicableAspect(method)) {
            continue;
        }
        if (interceptorList.size() == 0) {
            weaver.setInterceptors(method, new MethodInterceptor[0]);
        } else {
            weaver.setInterceptors(method, (MethodInterceptor[]) interceptorList
                    .toArray(new MethodInterceptor[interceptorList.size()]));
        }
    }
    enhancedClass = weaver.generateClass();

    final BeanDefinitionParserDelegate delegate = new BeanDefinitionParserDelegate(
            new XmlReaderContext(null, null, null, null, null, null));
    final int autowireMode = delegate.getAutowireMode(autowire);

    final RootBeanDefinition bd = new RootBeanDefinition();
    bd.setBeanClass(enhancedClass);
    bd.setAutowireMode(autowireMode);
    bd.setScope(scope);

    String beanName;
    if (autoNaming != null) {
        beanName = autoNaming.defineName(packageName, shortClassName);
    } else {
        beanName = className;
    }
    getBeanFactory().registerBeanDefinition(beanName, bd);

}

From source file:grails.spring.BeanBuilder.java

protected DynamicElementReader createDynamicElementReader(String namespace, final boolean decorator) {
    NamespaceHandler handler = namespaceHandlers.get(namespace);
    ParserContext parserContext = new ParserContext(readerContext,
            new BeanDefinitionParserDelegate(readerContext));
    final DynamicElementReader dynamicElementReader = new DynamicElementReader(namespace, namespaces, handler,
            parserContext) {/*from  ww  w.  ja va  2 s .  c  o  m*/
        @Override
        protected void afterInvocation() {
            if (!decorator) {
                currentBeanConfig = null;
            }
        }
    };
    dynamicElementReader.setClassLoader(classLoader);
    if (currentBeanConfig != null) {
        dynamicElementReader.setBeanConfiguration(currentBeanConfig);
    } else if (!decorator) {
        currentBeanConfig = new DefaultBeanConfiguration(namespace);
        dynamicElementReader.setBeanConfiguration(currentBeanConfig);
    }
    dynamicElementReader.setBeanDecorator(decorator);
    return dynamicElementReader;
}

From source file:org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader.java

private GroovyDynamicElementReader createDynamicElementReader(String namespace) {
    XmlReaderContext readerContext = this.groovyDslXmlBeanDefinitionReader
            .createReaderContext(new DescriptiveResource("Groovy"));
    BeanDefinitionParserDelegate delegate = new BeanDefinitionParserDelegate(readerContext);
    boolean decorating = (this.currentBeanDefinition != null);
    if (!decorating) {
        this.currentBeanDefinition = new GroovyBeanDefinitionWrapper(namespace);
    }//  w  w w .  j a  v a2  s  .c  o  m
    return new GroovyDynamicElementReader(namespace, this.namespaces, delegate, this.currentBeanDefinition,
            decorating) {
        @Override
        protected void afterInvocation() {
            if (!this.decorating) {
                currentBeanDefinition = null;
            }
        }
    };
}

From source file:org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.java

protected BeanDefinitionParserDelegate createDelegate(XmlReaderContext readerContext, Element root,
        @Nullable BeanDefinitionParserDelegate parentDelegate) {

    BeanDefinitionParserDelegate delegate = new BeanDefinitionParserDelegate(readerContext);
    delegate.initDefaults(root, parentDelegate);
    return delegate;
}

From source file:org.springframework.context.groovy.GroovyBeanDefinitionReader.java

protected DynamicElementReader createDynamicElementReader(String namespace, final boolean decorator) {
    NamespaceHandler handler = namespaceHandlers.get(namespace);
    ParserContext parserContext = new ParserContext(readerContext,
            new BeanDefinitionParserDelegate(readerContext));
    final DynamicElementReader dynamicElementReader = new DynamicElementReader(namespace, this.namespaces,
            handler, parserContext) {/*from w w  w  . j  a  v  a2 s .  c  om*/
        @Override
        protected void afterInvocation() {
            if (!decorator) {
                currentBeanConfig = null;
            }
        }
    };
    dynamicElementReader.setClassLoader(classLoader);
    if (currentBeanConfig != null) {
        dynamicElementReader.setBeanConfiguration(currentBeanConfig);
    } else if (!decorator) {
        currentBeanConfig = new DefaultBeanConfiguration(namespace);
        dynamicElementReader.setBeanConfiguration(currentBeanConfig);
    }
    dynamicElementReader.setBeanDecorator(decorator);
    return dynamicElementReader;
}