List of usage examples for org.springframework.util.xml DomUtils getChildElementsByTagName
public static List<Element> getChildElementsByTagName(Element ele, String childEleName)
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*/ }