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

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

Introduction

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

Prototype

public final XmlReaderContext getReaderContext() 

Source Link

Document

Get the XmlReaderContext associated with this helper instance.

Usage

From source file:edu.internet2.middleware.shibboleth.common.config.SpringConfigurationUtils.java

/**
 * Creates a {@link BeanDefinition} from a custom element.
 * //from   w w  w  . ja  v a  2  s.c o  m
 * @param element configuration element
 * @param parserContext currently parser context
 * 
 * @return the bean definition
 */
private static BeanDefinition createBeanDefinition(Element element, ParserContext parserContext) {
    BeanDefinitionParserDelegate delegate = parserContext.getDelegate();
    String namespaceUri = element.getNamespaceURI();

    if (XMLHelper.hasXSIType(element)) {
        namespaceUri = XMLHelper.getXSIType(element).getNamespaceURI();
    }

    NamespaceHandler handler = delegate.getReaderContext().getNamespaceHandlerResolver().resolve(namespaceUri);
    if (handler == null) {
        log.error("Unable to locate NamespaceHandler for namespace [" + namespaceUri + "]");
        return null;
    }
    return handler.parse(element, new ParserContext(delegate.getReaderContext(), delegate));
}

From source file:org.jboss.windup.config.spring.namespace.java.SpringNamespaceHandlerUtil.java

public static BeanDefinition resolveBeanDefinition(BeanDefinition beanDef, Element element,
        ParserContext context) {/*from   w  ww  .  j  av  a  2 s . c  o  m*/
    BeanDefinitionParserDelegate delegate = context.getDelegate();
    String namespace = element.getNamespaceURI();

    // check to see whether it is the default Spring bean decorator...
    if (StringUtils.equals(namespace, BeanDefinitionParserDelegate.BEANS_NAMESPACE_URI)) {
        BeanDefinitionHolder holder = delegate.parseBeanDefinitionElement(element, beanDef);
        return holder.getBeanDefinition();
    }

    // otherwise, see if it is supported based on our namespace resolver...
    NamespaceHandler namespaceHandler = delegate.getReaderContext().getNamespaceHandlerResolver()
            .resolve(namespace);
    if (namespaceHandler == null) {
        throw new FatalBeanException("Unable to find parser for bean with namespace: " + namespace);
    }

    return namespaceHandler.parse(element, new ParserContext(delegate.getReaderContext(), delegate, beanDef));
}