Example usage for org.springframework.util.xml DomUtils getChildElementsByTagName

List of usage examples for org.springframework.util.xml DomUtils getChildElementsByTagName

Introduction

In this page you can find the example usage for org.springframework.util.xml DomUtils getChildElementsByTagName.

Prototype

public static List<Element> getChildElementsByTagName(Element ele, String childEleName) 

Source Link

Document

Retrieves all child elements of the given DOM element that match the given element name.

Usage

From source file:com.apdplat.platform.spring.APDPlatPersistenceUnitReader.java

/**
 * Parse the <code>jar-file</code> XML elements.
 *//*from  w ww  .j  a  v  a2  s  . c  o  m*/
@SuppressWarnings("unchecked")
protected void parseJarFiles(Element persistenceUnit, SpringPersistenceUnitInfo unitInfo) throws IOException {
    List<Element> jars = DomUtils.getChildElementsByTagName(persistenceUnit, JAR_FILE_URL);
    for (Element element : jars) {
        logger.info(
                "apdplatspring jpa2(2. Start to execute custom modifications  of APDPlat for Spring JPA )");
        String jarHolder = DomUtils.getTextValue(element).trim();
        if (jarHolder == null || "".equals(jarHolder.trim())) {
            continue;
        }
        logger.info("??(Content of placeholder is): " + jarHolder);
        //${}??
        String realJars = PropertyHolder.getProperty(jarHolder.substring(2, jarHolder.length() - 1));
        logger.info(
                "???(Content of config file related to placeholder is): "
                        + realJars);
        String[] jarArray = realJars.split(",");
        for (String jar : jarArray) {
            if (StringUtils.hasText(jar)) {
                FileSystemResource resource = new FileSystemResource(FileUtils.getAbsolutePath(jar));
                unitInfo.addJarFileUrl(resource.getURL());
            }
        }
    }
}

From source file:it.pronetics.madstore.common.configuration.spring.MadStoreConfigurationBeanDefinitionParser.java

@SuppressWarnings("unchecked")
private void parseIndexConfiguration(Element repositoryElement, BeanDefinitionBuilder beanDefinitionBuilder) {
    IndexConfiguration indexConfiguration = new IndexConfiguration();

    Element indexConfigurationElement = DomUtils.getChildElementByTagName(repositoryElement,
            INDEX_CONFIGURATION_TAG);//from  w  ww. j  a v  a 2  s  .  c o  m
    String madStoreDir = MadStoreConfigurationManager.getInstance().getMadStoreHome();
    String indexDir = new StringBuilder(madStoreDir).append(SEPARATOR).append(DEFAULT_INDEX_FOLDER).toString();
    indexConfiguration.setIndexDir(indexDir);

    List<Element> indexedPropertiesNamespacesElementList = DomUtils.getChildElementsByTagName(
            DomUtils.getChildElementByTagName(indexConfigurationElement, INDEXED_PROPERTIES_NAMESPACES),
            NAMESPACE);
    Map<String, String> indexedPropertiesNamespaces = new HashMap<String, String>();
    for (Element namespaceElement : indexedPropertiesNamespacesElementList) {
        String name = namespaceElement.getAttribute(NAMESPACE_PREFIX);
        String xPath = namespaceElement.getAttribute(NAMESPACE_URL);
        indexedPropertiesNamespaces.put(name, xPath);
    }
    indexConfiguration.setIndexedPropertiesNamespaces(indexedPropertiesNamespaces);

    List<Element> indexedPropertiesElementList = DomUtils.getChildElementsByTagName(
            DomUtils.getChildElementByTagName(indexConfigurationElement, INDEXED_PROPERTIES), PROPERTY);
    List<Property> indexedProperties = new ManagedList(indexedPropertiesElementList.size());
    for (Element propertyElement : indexedPropertiesElementList) {
        String name = propertyElement.getAttribute(PROPERTY_NAME);
        String xPath = DomUtils.getChildElementByTagName(propertyElement, XPATH).getTextContent();
        int boost = Integer
                .valueOf((DomUtils.getChildElementByTagName(propertyElement, BOOST).getTextContent()));
        Property indexedProperty = indexConfiguration.new Property(name, xPath, boost);
        indexedProperties.add(indexedProperty);
    }
    indexConfiguration.setIndexedProperties(indexedProperties);
    beanDefinitionBuilder.addPropertyValue(INDEX_CONFIGURATION_BEAN_PROPERTY, indexConfiguration);
}

From source file:com.apdplat.platform.spring.APDPlatPersistenceUnitReader.java

/**
 * Parse the <code>mapping-file</code> XML elements.
 *//*from  w  w  w .j a  v  a 2 s  .  c  o m*/
@SuppressWarnings("unchecked")
protected void parseMappingFiles(Element persistenceUnit, SpringPersistenceUnitInfo unitInfo) {
    List<Element> files = DomUtils.getChildElementsByTagName(persistenceUnit, MAPPING_FILE_NAME);
    for (Element element : files) {
        String value = DomUtils.getTextValue(element).trim();
        if (StringUtils.hasText(value)) {
            unitInfo.addMappingFileName(value);
        }
    }
}

From source file:org.broadleafcommerce.common.extensibility.context.EmbeddedBeanDefinitionParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    try {//from  w  w w .j a v  a  2  s .co  m
        String[] broadleafConfigLocations = StandardConfigLocations
                .retrieveAll(StandardConfigLocations.APPCONTEXTTYPE);

        ArrayList<ResourceInputStream> sources = new ArrayList<ResourceInputStream>(20);
        for (String location : broadleafConfigLocations) {
            InputStream source = getClass().getClassLoader().getResourceAsStream(location);
            if (source != null) {
                sources.add(new ResourceInputStream(source, location));
            }
        }
        ResourceInputStream[] filteredSources = new ResourceInputStream[] {};
        filteredSources = sources.toArray(filteredSources);

        List<Resource> locations = new ArrayList<Resource>();
        List<Element> overrideItemElements = DomUtils.getChildElementsByTagName(element, "location");
        for (Element overrideItem : overrideItemElements) {
            String location = overrideItem.getAttribute("value");
            Resource[] resources = ((ResourcePatternResolver) parserContext.getReaderContext()
                    .getResourceLoader()).getResources(location);
            if (ArrayUtils.isEmpty(resources)) {
                LOG.warn("Unable to find the resource: " + location);
            } else {
                locations.add(resources[0]);
            }
        }

        ResourceInputStream[] patches = new ResourceInputStream[locations.size()];
        for (int i = 0; i < locations.size(); i++) {
            patches[i] = new ResourceInputStream(locations.get(i).getInputStream(),
                    locations.get(i).getDescription());

            if (patches[i] == null || patches[i].available() <= 0) {
                throw new IOException(
                        "Unable to open an input stream on specified application context resource: "
                                + locations.get(i).getDescription());
            }
        }

        ImportProcessor importProcessor = new ImportProcessor(
                parserContext.getReaderContext().getResourceLoader());
        try {
            filteredSources = importProcessor.extract(filteredSources);
            patches = importProcessor.extract(patches);
        } catch (MergeException e) {
            throw new FatalBeanException("Unable to merge source and patch locations", e);
        }

        Resource[] resources = new MergeApplicationContextXmlConfigResource()
                .getConfigResources(filteredSources, patches);
        parserContext.getReaderContext().getReader().loadBeanDefinitions(resources[0]);
        return null;
    } catch (IOException e) {
        throw ExceptionHelper.refineException(e);
    }
}

From source file:org.broadleafcommerce.openadmin.server.util.MetadataOverrideBeanDefinitionParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder overallMapBuilder = BeanDefinitionBuilder.rootBeanDefinition(MapFactoryBean.class);
    Map<String, BeanDefinition> overallMap = new ManagedMap<String, BeanDefinition>();
    List<Element> overrideItemElements = DomUtils.getChildElementsByTagName(element, "overrideItem");
    for (Element overrideItem : overrideItemElements) {
        String configKey = overrideItem.getAttribute("configurationKey");
        String ceilingEntity = overrideItem.getAttribute("ceilingEntity");

        if (StringUtils.isEmpty(configKey) && StringUtils.isEmpty(ceilingEntity)) {
            throw new IllegalArgumentException(
                    "Must specify either a configurationKey or a ceilingEntity attribute for the overrideItem element");
        }//from  w ww. j  a  v  a2s.com

        BeanDefinitionBuilder fieldMapBuilder = BeanDefinitionBuilder.rootBeanDefinition(MapFactoryBean.class);
        Map<String, BeanDefinition> fieldMap = new ManagedMap<String, BeanDefinition>();
        List<Element> fieldElements = DomUtils.getChildElementsByTagName(overrideItem, "field");
        for (Element fieldElement : fieldElements) {
            String fieldName = fieldElement.getAttribute("name");
            BeanDefinitionBuilder metadataBuilder = BeanDefinitionBuilder
                    .rootBeanDefinition(FieldMetadataOverride.class);
            fieldMap.put(fieldName, metadataBuilder.getBeanDefinition());
            {
                List<Element> propElements = DomUtils.getChildElementsByTagName(fieldElement, "property");
                for (Element propElement : propElements) {
                    String propName = propElement.getAttribute("name");
                    String propValue = propElement.getAttribute("value");
                    metadataBuilder.addPropertyValue(propName, propValue);
                }
            }

            {
                List<Element> validationElements = DomUtils.getChildElementsByTagName(fieldElement,
                        "validation");
                Map<String, Map<String, String>> validationConfigMap = new ManagedMap<String, Map<String, String>>();
                for (Element validationElement : validationElements) {
                    Map<String, String> validationMap = new ManagedMap<String, String>();
                    List<Element> valPropElements = DomUtils.getChildElementsByTagName(validationElement,
                            "property");
                    for (Element valPropElement : valPropElements) {
                        String valPropName = valPropElement.getAttribute("name");
                        String valPropValue = valPropElement.getAttribute("value");
                        validationMap.put(valPropName, valPropValue);
                    }
                    String className = validationElement.getAttribute("className");
                    validationConfigMap.put(className, validationMap);
                }
                if (!validationConfigMap.isEmpty()) {
                    metadataBuilder.addPropertyValue("validationConfigurations", validationConfigMap);
                }
            }

            {
                List<Element> optionElements = DomUtils.getChildElementsByTagName(fieldElement,
                        "optionFilterValue");
                String[][] optionFilterValues = new String[optionElements.size()][3];
                int j = 0;
                for (Element optionElement : optionElements) {
                    optionFilterValues[j][0] = optionElement.getAttribute("name");
                    optionFilterValues[j][1] = optionElement.getAttribute("value");
                    optionFilterValues[j][2] = optionElement.getAttribute("type");
                    j++;
                }
                if (!ArrayUtils.isEmpty(optionFilterValues)) {
                    metadataBuilder.addPropertyValue("optionFilterValues", optionFilterValues);
                }
            }

            {
                List<Element> keyElements = DomUtils.getChildElementsByTagName(fieldElement, "mapKey");
                String[][] keyValues = new String[keyElements.size()][2];
                int j = 0;
                for (Element keyElement : keyElements) {
                    keyValues[j][0] = keyElement.getAttribute("value");
                    keyValues[j][1] = keyElement.getAttribute("displayValue");
                    j++;
                }
                if (!ArrayUtils.isEmpty(keyValues)) {
                    metadataBuilder.addPropertyValue("keys", keyValues);
                }
            }

            {
                List<Element> children = DomUtils.getChildElementsByTagName(fieldElement, "customCriteria");
                String[] values = new String[children.size()];
                int j = 0;
                for (Element childElem : children) {
                    values[j] = childElem.getAttribute("value");
                    j++;
                }
                if (!ArrayUtils.isEmpty(values)) {
                    metadataBuilder.addPropertyValue("customCriteria", values);
                }
            }

            {
                List<Element> children = DomUtils.getChildElementsByTagName(fieldElement,
                        "maintainedAdornedTargetField");
                String[] values = new String[children.size()];
                int j = 0;
                for (Element childElem : children) {
                    values[j] = childElem.getAttribute("value");
                    j++;
                }
                if (!ArrayUtils.isEmpty(values)) {
                    metadataBuilder.addPropertyValue("maintainedAdornedTargetFields", values);
                }
            }

            {
                List<Element> children = DomUtils.getChildElementsByTagName(fieldElement, "gridVisibleField");
                String[] values = new String[children.size()];
                int j = 0;
                for (Element childElem : children) {
                    values[j] = childElem.getAttribute("value");
                    j++;
                }
                if (!ArrayUtils.isEmpty(values)) {
                    metadataBuilder.addPropertyValue("gridVisibleFields", values);
                }
            }
        }
        fieldMapBuilder.addPropertyValue("sourceMap", fieldMap);

        overallMap.put(StringUtils.isEmpty(configKey) ? ceilingEntity : configKey,
                fieldMapBuilder.getBeanDefinition());
    }

    overallMapBuilder.addPropertyValue("sourceMap", overallMap);

    return overallMapBuilder.getBeanDefinition();
}

From source file:org.directwebremoting.spring.DwrNamespaceHandler.java

/**
 * Registers a new {@link org.directwebremoting.extend.Creator} in the registry using name <code>javascript</code>.
 * @param registry The definition of all the Beans
 * @param javascript The name of the bean in the registry.
 * @param creatorConfig// w  w w  . j  av a  2  s  .  c  om
 * @param params
 * @param children The node list to check for nested elements
 */
@SuppressWarnings("unchecked")
protected void registerCreator(BeanDefinitionRegistry registry, String javascript,
        BeanDefinitionBuilder creatorConfig, Map<String, String> params, NodeList children) {
    registerSpringConfiguratorIfNecessary(registry);

    List<String> includes = new ArrayList<String>();
    creatorConfig.addPropertyValue("includes", includes);

    List<String> excludes = new ArrayList<String>();
    creatorConfig.addPropertyValue("excludes", excludes);

    Properties auth = new Properties();
    creatorConfig.addPropertyValue("auth", auth);

    // check to see if there are any nested elements here
    for (int i = 0; i < children.getLength(); i++) {
        Node node = children.item(i);

        if (node.getNodeType() == Node.TEXT_NODE || node.getNodeType() == Node.COMMENT_NODE) {
            continue;
        }

        Element child = (Element) node;

        if ("dwr:latencyfilter".equals(node.getNodeName())) {
            BeanDefinitionBuilder beanFilter = BeanDefinitionBuilder
                    .rootBeanDefinition(ExtraLatencyAjaxFilter.class);
            beanFilter.addPropertyValue("delay", child.getAttribute("delay"));
            BeanDefinitionHolder holder2 = new BeanDefinitionHolder(beanFilter.getBeanDefinition(),
                    "__latencyFilter_" + javascript);
            BeanDefinitionReaderUtils.registerBeanDefinition(holder2, registry);

            ManagedList filterList = new ManagedList();
            filterList.add(new RuntimeBeanReference("__latencyFilter_" + javascript));
            creatorConfig.addPropertyValue("filters", filterList);
        } else if ("dwr:include".equals(node.getNodeName())) {
            includes.add(child.getAttribute("method"));
        } else if ("dwr:exclude".equals(node.getNodeName())) {
            excludes.add(child.getAttribute("method"));
        } else if ("dwr:auth".equals(node.getNodeName())) {
            auth.setProperty(child.getAttribute("method"), child.getAttribute("role"));
        } else if ("dwr:convert".equals(node.getNodeName())) {
            Element element = (Element) node;
            String type = element.getAttribute("type");
            String className = element.getAttribute("class");

            ConverterConfig converterConfig = new ConverterConfig();
            converterConfig.setType(type);
            parseConverterSettings(converterConfig, element);
            lookupConverters(registry).put(className, converterConfig);
        } else if ("dwr:filter".equals(node.getNodeName())) {
            Element element = (Element) node;
            String filterClass = element.getAttribute("class");
            List<Element> filterParamElements = DomUtils.getChildElementsByTagName(element, "param");
            BeanDefinitionBuilder beanFilter;
            try {
                beanFilter = BeanDefinitionBuilder.rootBeanDefinition(ClassUtils.forName(filterClass));
            } catch (ClassNotFoundException e) {
                throw new IllegalArgumentException("DWR filter class '" + filterClass + "' was not found. "
                        + "Check the class name specified in <dwr:filter class=\"" + filterClass
                        + "\" /> exists");
            }
            for (Element filterParamElement : filterParamElements) {
                beanFilter.addPropertyValue(filterParamElement.getAttribute("name"),
                        filterParamElement.getAttribute("value"));
            }
            BeanDefinitionHolder holder2 = new BeanDefinitionHolder(beanFilter.getBeanDefinition(),
                    "__filter_" + filterClass + "_" + javascript);
            BeanDefinitionReaderUtils.registerBeanDefinition(holder2, registry);

            ManagedList filterList = new ManagedList();
            filterList.add(new RuntimeBeanReference("__filter_" + filterClass + "_" + javascript));
            creatorConfig.addPropertyValue("filters", filterList);
        } else if ("dwr:param".equals(node.getNodeName())) {
            Element element = (Element) node;
            String name = element.getAttribute("name");
            String value = element.getAttribute("value");
            params.put(name, value);
        } else {
            throw new RuntimeException("an unknown dwr:remote sub node was fouund: " + node.getNodeName());
        }
    }
    creatorConfig.addPropertyValue("params", params);

    String creatorConfigName = "__" + javascript;
    BeanDefinitionHolder holder3 = new BeanDefinitionHolder(creatorConfig.getBeanDefinition(),
            creatorConfigName);
    BeanDefinitionReaderUtils.registerBeanDefinition(holder3, registry);

    lookupCreators(registry).put(javascript, new RuntimeBeanReference(creatorConfigName));
}

From source file:org.eclipse.gemini.blueprint.blueprint.config.internal.BlueprintParser.java

/**
 * Parse a map element./*from w  w  w  .j  a  v  a2s. com*/
 */
public Map<?, ?> parseMapElement(Element mapEle, BeanDefinition bd) {
    String defaultKeyType = mapEle.getAttribute(BeanDefinitionParserDelegate.KEY_TYPE_ATTRIBUTE);
    String defaultValueType = mapEle.getAttribute(BeanDefinitionParserDelegate.VALUE_TYPE_ATTRIBUTE);

    List<Element> entryEles = DomUtils.getChildElementsByTagName(mapEle,
            BeanDefinitionParserDelegate.ENTRY_ELEMENT);
    ManagedMap<Object, Object> map = new ManagedMap<Object, Object>(entryEles.size());
    map.setSource(extractSource(mapEle));
    map.setKeyTypeName(defaultKeyType);
    map.setValueTypeName(defaultValueType);
    map.setMergeEnabled(parseMergeAttribute(mapEle));

    for (Element entryEle : entryEles) {
        // Should only have one value child element: ref, value, list, etc.
        // Optionally, there might be a key child element.
        NodeList entrySubNodes = entryEle.getChildNodes();
        Element keyEle = null;
        Element valueEle = null;
        for (int j = 0; j < entrySubNodes.getLength(); j++) {
            Node node = entrySubNodes.item(j);
            if (node instanceof Element) {
                Element candidateEle = (Element) node;
                if (DomUtils.nodeNameEquals(candidateEle, BeanDefinitionParserDelegate.KEY_ELEMENT)) {
                    if (keyEle != null) {
                        error("<entry> element is only allowed to contain one <key> sub-element", entryEle);
                    } else {
                        keyEle = candidateEle;
                    }
                } else {
                    // Child element is what we're looking for.
                    if (valueEle != null) {
                        error("<entry> element must not contain more than one value sub-element", entryEle);
                    } else {
                        valueEle = candidateEle;
                    }
                }
            }
        }

        // Extract key from attribute or sub-element.
        Object key = null;
        boolean hasKeyAttribute = entryEle.hasAttribute(BeanDefinitionParserDelegate.KEY_ATTRIBUTE);
        boolean hasKeyRefAttribute = entryEle.hasAttribute(BeanDefinitionParserDelegate.KEY_REF_ATTRIBUTE);
        if ((hasKeyAttribute && hasKeyRefAttribute)
                || ((hasKeyAttribute || hasKeyRefAttribute)) && keyEle != null) {
            error("<entry> element is only allowed to contain either "
                    + "a 'key' attribute OR a 'key-ref' attribute OR a <key> sub-element", entryEle);
        }
        if (hasKeyAttribute) {
            key = buildTypedStringValueForMap(entryEle.getAttribute(BeanDefinitionParserDelegate.KEY_ATTRIBUTE),
                    defaultKeyType, entryEle);
        } else if (hasKeyRefAttribute) {
            String refName = entryEle.getAttribute(BeanDefinitionParserDelegate.KEY_REF_ATTRIBUTE);
            if (!StringUtils.hasText(refName)) {
                error("<entry> element contains empty 'key-ref' attribute", entryEle);
            }
            RuntimeBeanReference ref = new RuntimeBeanReference(refName);
            ref.setSource(extractSource(entryEle));
            key = ref;
        } else if (keyEle != null) {
            key = parseKeyElement(keyEle, bd, defaultKeyType);
        } else {
            error("<entry> element must specify a key", entryEle);
        }

        // Extract value from attribute or sub-element.
        Object value = null;
        boolean hasValueAttribute = entryEle.hasAttribute(BeanDefinitionParserDelegate.VALUE_ATTRIBUTE);
        boolean hasValueRefAttribute = entryEle.hasAttribute(BeanDefinitionParserDelegate.VALUE_REF_ATTRIBUTE);
        if ((hasValueAttribute && hasValueRefAttribute)
                || ((hasValueAttribute || hasValueRefAttribute)) && valueEle != null) {
            error("<entry> element is only allowed to contain either "
                    + "'value' attribute OR 'value-ref' attribute OR <value> sub-element", entryEle);
        }
        if (hasValueAttribute) {
            value = buildTypedStringValueForMap(
                    entryEle.getAttribute(BeanDefinitionParserDelegate.VALUE_ATTRIBUTE), defaultValueType,
                    entryEle);
        } else if (hasValueRefAttribute) {
            String refName = entryEle.getAttribute(BeanDefinitionParserDelegate.VALUE_REF_ATTRIBUTE);
            if (!StringUtils.hasText(refName)) {
                error("<entry> element contains empty 'value-ref' attribute", entryEle);
            }
            RuntimeBeanReference ref = new RuntimeBeanReference(refName);
            ref.setSource(extractSource(entryEle));
            value = ref;
        } else if (valueEle != null) {
            value = parsePropertySubElement(valueEle, bd, defaultValueType);
        } else {
            error("<entry> element must specify a value", entryEle);
        }

        // Add final key and value to the Map.
        map.put(key, value);
    }

    return map;
}

From source file:org.eclipse.gemini.blueprint.blueprint.config.internal.BlueprintParser.java

/**
 * Parse a props element.//  w w w .ja v  a2s.c  o  m
 */
public Properties parsePropsElement(Element propsEle) {
    ManagedProperties props = new OrderedManagedProperties();
    props.setSource(extractSource(propsEle));
    props.setMergeEnabled(parseMergeAttribute(propsEle));

    List propEles = DomUtils.getChildElementsByTagName(propsEle, BeanDefinitionParserDelegate.PROP_ELEMENT);
    for (Iterator it = propEles.iterator(); it.hasNext();) {
        Element propEle = (Element) it.next();
        String key = propEle.getAttribute(BeanDefinitionParserDelegate.KEY_ATTRIBUTE);
        // Trim the text value to avoid unwanted whitespace
        // caused by typical XML formatting.
        String value = DomUtils.getTextValue(propEle).trim();

        TypedStringValue keyHolder = new TypedStringValue(key);
        keyHolder.setSource(extractSource(propEle));
        TypedStringValue valueHolder = new TypedStringValue(value);
        valueHolder.setSource(extractSource(propEle));
        props.put(keyHolder, valueHolder);
    }

    return props;
}

From source file:org.impalaframework.web.spring.config.WebMappingBeanDefinitionParser.java

private void handlePrefixes(Element element, ParserContext parserContext) {
    List<Element> toModules = DomUtils.getChildElementsByTagName(element, TO_MDOULE_ELEMENT);

    Map<String, ContextAndServletPath> toModulesMap = new LinkedHashMap<String, ContextAndServletPath>();

    for (Element toModulesElement : toModules) {
        String pathAttribute = toModulesElement.getAttribute(PREFIX_ATTRIBUTE);

        String servletPath = getPathAttributeValue(toModulesElement, pathAttribute, SET_SERVLET_PATH_ATTRIBUTE,
                SERVLET_PATH_ATTRIBUTE);
        String contextPath = getPathAttributeValue(toModulesElement, pathAttribute, SET_CONTEXT_PATH_ATTRIBUTE,
                CONTEXT_PATH_ATTRIBUTE);

        //check that not relying on both setServletPath and setContextPath only
        if (toModulesElement.hasAttribute(SET_SERVLET_PATH_ATTRIBUTE)
                && toModulesElement.hasAttribute(SET_CONTEXT_PATH_ATTRIBUTE)
                && !toModulesElement.hasAttribute(SERVLET_PATH_ATTRIBUTE)
                && !toModulesElement.hasAttribute(CONTEXT_PATH_ATTRIBUTE)) {
            logger.warn(//from  w  ww .  j ava2s .c o m
                    "Both 'setServletPath' and 'setContextPath' are used for to-handler attribute. This is ordinarily not required, and is not a recommended usage.");
        }

        ContextAndServletPath paths = new ContextAndServletPath(contextPath, servletPath);
        toModulesMap.put(pathAttribute.trim(), paths);
    }

    RootBeanDefinition definition = newContributorDefinition(toModulesMap);
    registerDefinition(parserContext, definition);
}

From source file:org.impalaframework.web.spring.config.WebMappingBeanDefinitionParser.java

private void handleSuffixes(Element element, ParserContext parserContext) {

    List<Element> suffixes = DomUtils.getChildElementsByTagName(element, TO_RESOURCE_ELEMENT);

    for (Element suffixElement : suffixes) {
        String extensionAttribute = suffixElement.getAttribute(EXTENSION_ATTRIBUTE);
        String servletNameAttribute = suffixElement.getAttribute(SERVLET_NAME_ATTTRIBUTE);
        String filterNamesAttribute = suffixElement.getAttribute(FILTER_NAMES);

        String[] filterNames = getFilterNames(filterNamesAttribute);

        String servletName = getServletName(servletNameAttribute);

        RootBeanDefinition definition = new RootBeanDefinition(ModuleInvokerContributor.class);
        MutablePropertyValues propertyValues = definition.getPropertyValues();
        propertyValues.addPropertyValue("suffix", extensionAttribute);
        propertyValues.addPropertyValue("servletName", servletName);
        propertyValues.addPropertyValue("filterNames", filterNames);

        registerDefinition(parserContext, definition);
    }/* w w w .j  a v a2  s  . c o  m*/
}