List of usage examples for org.w3c.dom Element getLocalName
public String getLocalName();
From source file:Main.java
/** * Returns the XPath to retrieve targetElement from rootElement. rootElement may be null, in this case the XPath starts with and includes * the farthest non-null ancestor of targetElement. If rootElement == targetElement, an empty string * is returned. //from ww w.jav a2 s. c om * @param includeElementIndex Indicates if the element indices in the form elementName[n] should * be included in the XPath. * @param namespacesMap Maps namespace ids to namespace URIs. */ public static String getXPath(Element rootElement, Element targetElement, boolean includeElementIndex, Map<String, String> namespacesMap) { Stack<Element> elementPath = new Stack<Element>(); // since we need the mapping the other way round, we invert the map Map<String, String> namespaceUriToIdMap = new HashMap<String, String>(); for (Entry<String, String> entry : namespacesMap.entrySet()) { namespaceUriToIdMap.put(entry.getValue(), entry.getKey()); } // recursively find all ancestors of targetElement (up to, not including, rootElement) { Element currentElement = targetElement; while (currentElement != null && currentElement != rootElement) { elementPath.push(currentElement); Node parent = currentElement.getParentNode(); if (parent instanceof Element) { currentElement = (Element) currentElement.getParentNode(); } else { currentElement = null; } } } // construct XPath StringBuilder builder = new StringBuilder(); while (!elementPath.isEmpty()) { Element currentElement = elementPath.pop(); if (builder.length() > 0) { // don't include "/" at the beginning builder.append("/"); } if (namespacesMap != null) { String namespace = currentElement.getNamespaceURI(); if (namespace != null) { namespace = namespaceUriToIdMap.get(namespace); builder.append(namespace); builder.append(":"); } } builder.append(currentElement.getLocalName()); if (includeElementIndex) { int index = getElementIndex(currentElement); builder.append("["); builder.append(index); builder.append("]"); } } return builder.toString(); }
From source file:org.apache.ftpserver.config.spring.ServerBeanDefinitionParser.java
/** * Parse listeners elements//ww w. jav a 2s .com */ @SuppressWarnings("unchecked") private Map<?, ?> parseListeners(final Element listenersElm, final ParserContext parserContext, final BeanDefinitionBuilder builder) { ManagedMap listeners = new ManagedMap(); List<Element> childs = SpringUtil.getChildElements(listenersElm); for (Element listenerElm : childs) { Object listener = null; String ln = listenerElm.getLocalName(); if ("nio-listener".equals(ln)) { listener = parserContext.getDelegate().parseCustomElement(listenerElm, builder.getBeanDefinition()); } else if ("listener".equals(ln)) { listener = SpringUtil.parseSpringChildElement(listenerElm, parserContext, builder); } else { throw new FtpServerConfigurationException("Unknown listener element " + ln); } String name = listenerElm.getAttribute("name"); listeners.put(name, listener); } return listeners; }
From source file:bpelg.packaging.ode.util.BgSchemaCollection.java
protected void handleImports(BgSchema schema) throws Exception { NodeList children = schema.getRoot().getChildNodes(); List<Element> imports = new ArrayList<>(); for (int i = 0; i < children.getLength(); i++) { Node child = children.item(i); if (child instanceof Element) { Element ce = (Element) child; if ("http://www.w3.org/2001/XMLSchema".equals(ce.getNamespaceURI()) && "import".equals(ce.getLocalName())) { imports.add(ce);//from w w w. ja v a2 s. co m } } } for (Element ce : imports) { String namespace = ce.getAttribute("namespace"); if (schemas.get(namespace) == null) { String location = ce.getAttribute("schemaLocation"); if (location != null && !"".equals(location)) { read(location, schema.getSourceUri()); } } schema.addImport(namespace); schema.getRoot().removeChild(ce); } }
From source file:org.apache.ftpserver.config.spring.UserManagerBeanDefinitionParser.java
@Override protected void doParse(final Element element, final ParserContext parserContext, final BeanDefinitionBuilder builder) { Class<?> factoryClass;//from ww w . j a va2 s .c o m if (element.getLocalName().equals("file-user-manager")) { factoryClass = PropertiesUserManagerFactory.class; } else { factoryClass = DbUserManagerFactory.class; } BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(factoryClass); // common for both user managers if (StringUtils.hasText(element.getAttribute("encrypt-passwords"))) { String encryptionStrategy = element.getAttribute("encrypt-passwords"); if (encryptionStrategy.equals("true") || encryptionStrategy.equals("md5")) { factoryBuilder.addPropertyValue("passwordEncryptor", new Md5PasswordEncryptor()); } else if (encryptionStrategy.equals("salted")) { factoryBuilder.addPropertyValue("passwordEncryptor", new SaltedPasswordEncryptor()); } else { factoryBuilder.addPropertyValue("passwordEncryptor", new ClearTextPasswordEncryptor()); } } if (factoryClass == PropertiesUserManagerFactory.class) { if (StringUtils.hasText(element.getAttribute("file"))) { factoryBuilder.addPropertyValue("file", element.getAttribute("file")); } if (StringUtils.hasText(element.getAttribute("url"))) { factoryBuilder.addPropertyValue("url", element.getAttribute("url")); } } else { Element dsElm = SpringUtil.getChildElement(element, FtpServerNamespaceHandler.FTPSERVER_NS, "data-source"); // schema ensure we get the right type of element Element springElm = SpringUtil.getChildElement(dsElm, null, null); Object o; if ("bean".equals(springElm.getLocalName())) { o = parserContext.getDelegate().parseBeanDefinitionElement(springElm, builder.getBeanDefinition()); } else { // ref o = parserContext.getDelegate().parsePropertySubElement(springElm, builder.getBeanDefinition()); } factoryBuilder.addPropertyValue("dataSource", o); factoryBuilder.addPropertyValue("sqlUserInsert", getSql(element, "insert-user")); factoryBuilder.addPropertyValue("sqlUserUpdate", getSql(element, "update-user")); factoryBuilder.addPropertyValue("sqlUserDelete", getSql(element, "delete-user")); factoryBuilder.addPropertyValue("sqlUserSelect", getSql(element, "select-user")); factoryBuilder.addPropertyValue("sqlUserSelectAll", getSql(element, "select-all-users")); factoryBuilder.addPropertyValue("sqlUserAdmin", getSql(element, "is-admin")); factoryBuilder.addPropertyValue("sqlUserAuthenticate", getSql(element, "authenticate")); } BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition(); String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition); BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId); registerBeanDefinition(factoryHolder, parserContext.getRegistry()); // set the factory on the listener bean builder.getRawBeanDefinition().setFactoryBeanName(factoryId); builder.getRawBeanDefinition().setFactoryMethodName("createUserManager"); }
From source file:com.seovic.validation.config.ValidationBeanDefinitionParser.java
@SuppressWarnings("unchecked") private BeanDefinition parseValidator(Element element, ParserContext parserContext) { String parent = element.getAttribute("parent"); if ("".equals(parent)) { parent = null;//from w w w . j a v a 2s.c o m } String test = element.getAttribute("test"); String when = element.getAttribute("when"); String validateAll = element.getAttribute("validate-all"); String context = element.getAttribute("context"); String includeElementsErrors = element.getAttribute("include-element-errors"); MutablePropertyValues properties = new MutablePropertyValues(); if (StringUtils.hasText(test)) { properties.addPropertyValue("test", test); } if (StringUtils.hasText(when)) { properties.addPropertyValue("when", when); } if (StringUtils.hasText(validateAll)) { properties.addPropertyValue("validateAll", validateAll); } if (StringUtils.hasText(context)) { properties.addPropertyValue("context", context); } if (StringUtils.hasText(includeElementsErrors)) { properties.addPropertyValue("includeElementsErrors", includeElementsErrors); } ManagedList nestedValidators = new ManagedList(); ManagedList actions = new ManagedList(); for (int i = 0; i < element.getChildNodes().getLength(); i++) { Node child = element.getChildNodes().item(i); if (child != null && child instanceof Element) { Element childElement = (Element) child; if ("message".equals(childElement.getLocalName())) { actions.add(parseErrorMessageAction(childElement, parserContext)); } else { nestedValidators.add(parseAndRegisterValidator2(childElement, parserContext)); } } } if (nestedValidators.size() > 0) { properties.addPropertyValue("validators", nestedValidators); } if (actions.size() > 0) { properties.addPropertyValue("actions", actions); } String className; if ("required".equals(element.getLocalName())) { className = RequiredValidator.class.getName(); } else if ("condition".equals(element.getLocalName())) { className = ConditionValidator.class.getName(); } else if ("validator".equals(element.getLocalName())) { className = element.getAttribute("type"); } else { className = ValidatorGroup.class.getName(); } AbstractBeanDefinition validatorDefinition; try { validatorDefinition = BeanDefinitionReaderUtils.createBeanDefinition(parent, className, parserContext.getReaderContext().getBeanClassLoader()); } catch (ClassNotFoundException e) { throw new BeanCreationException("Error occured during creation of bean definition", e); } validatorDefinition.setResource(parserContext.getReaderContext().getResource()); validatorDefinition.setSource(parserContext.extractSource(element)); validatorDefinition.setPropertyValues(properties); validatorDefinition.setLazyInit(true); validatorDefinition.setScope("singleton"); return validatorDefinition; }
From source file:org.apache.smscserver.config.spring.UserManagerBeanDefinitionParser.java
@Override protected void doParse(final Element element, final ParserContext parserContext, final BeanDefinitionBuilder builder) { Class<?> factoryClass;//from w w w . j a v a 2 s. c o m if (element.getLocalName().equals("file-user-manager")) { factoryClass = PropertiesUserManagerFactory.class; } else { factoryClass = DbUserManagerFactory.class; } BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(factoryClass); // common for both user managers if (StringUtils.hasText(element.getAttribute("encrypt-passwords"))) { String encryptionStrategy = element.getAttribute("encrypt-passwords"); if (encryptionStrategy.equals("true") || encryptionStrategy.equals("md5")) { factoryBuilder.addPropertyValue("passwordEncryptor", new Md5PasswordEncryptor()); } else if (encryptionStrategy.equals("salted")) { factoryBuilder.addPropertyValue("passwordEncryptor", new SaltedPasswordEncryptor()); } else { factoryBuilder.addPropertyValue("passwordEncryptor", new ClearTextPasswordEncryptor()); } } if (factoryClass == PropertiesUserManagerFactory.class) { if (StringUtils.hasText(element.getAttribute("file"))) { factoryBuilder.addPropertyValue("file", element.getAttribute("file")); } if (StringUtils.hasText(element.getAttribute("url"))) { factoryBuilder.addPropertyValue("url", element.getAttribute("url")); } } else { Element dsElm = SpringUtil.getChildElement(element, SmscServerNamespaceHandler.SMSCSERVER_NS, "data-source"); // schema ensure we get the right type of element Element springElm = SpringUtil.getChildElement(dsElm, null, null); Object o; if ("bean".equals(springElm.getLocalName())) { o = parserContext.getDelegate().parseBeanDefinitionElement(springElm, builder.getBeanDefinition()); } else { // ref o = parserContext.getDelegate().parsePropertySubElement(springElm, builder.getBeanDefinition()); } factoryBuilder.addPropertyValue("dataSource", o); factoryBuilder.addPropertyValue("sqlUserInsert", this.getSql(element, "insert-user")); factoryBuilder.addPropertyValue("sqlUserUpdate", this.getSql(element, "update-user")); factoryBuilder.addPropertyValue("sqlUserDelete", this.getSql(element, "delete-user")); factoryBuilder.addPropertyValue("sqlUserSelect", this.getSql(element, "select-user")); factoryBuilder.addPropertyValue("sqlUserSelectAll", this.getSql(element, "select-all-users")); factoryBuilder.addPropertyValue("sqlUserAdmin", this.getSql(element, "is-admin")); factoryBuilder.addPropertyValue("sqlUserAuthenticate", this.getSql(element, "authenticate")); } BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition(); String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition); BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId); this.registerBeanDefinition(factoryHolder, parserContext.getRegistry()); // set the factory on the listener bean builder.getRawBeanDefinition().setFactoryBeanName(factoryId); builder.getRawBeanDefinition().setFactoryMethodName("createUserManager"); }
From source file:pl.chilldev.web.spring.config.AbstractMetaBeanDefinitionParser.java
/** * {@inheritDoc}/*from w ww.j a v a 2s. c om*/ * @since 0.0.1 */ @Override public BeanDefinition parse(Element element, ParserContext parserContext) { String key = element.getAttribute(AbstractMetaBeanDefinitionParser.ATTRIBUTE_KEY); String value = DomUtils.getTextValue(element); this.logger.info("Adding \"{}\" with value \"{}\" as meta \"{}\".", key, value, element.getLocalName()); this.meta.put(key, value); return null; }
From source file:org.apache.ftpserver.config.spring.ServerBeanDefinitionParser.java
/** * {@inheritDoc}/*from www .jav a 2 s.c om*/ */ @Override protected void doParse(final Element element, final ParserContext parserContext, final BeanDefinitionBuilder builder) { BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(FtpServerFactory.class); List<Element> childs = SpringUtil.getChildElements(element); for (Element childElm : childs) { String childName = childElm.getLocalName(); if ("listeners".equals(childName)) { Map<?, ?> listeners = parseListeners(childElm, parserContext, builder); if (listeners.size() > 0) { factoryBuilder.addPropertyValue("listeners", listeners); } } else if ("ftplets".equals(childName)) { Map<?, ?> ftplets = parseFtplets(childElm, parserContext, builder); factoryBuilder.addPropertyValue("ftplets", ftplets); } else if ("file-user-manager".equals(childName) || "db-user-manager".equals(childName)) { Object userManager = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("userManager", userManager); } else if ("user-manager".equals(childName)) { factoryBuilder.addPropertyValue("userManager", SpringUtil.parseSpringChildElement(childElm, parserContext, builder)); } else if ("native-filesystem".equals(childName)) { Object fileSystem = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("fileSystem", fileSystem); } else if ("filesystem".equals(childName)) { factoryBuilder.addPropertyValue("fileSystem", SpringUtil.parseSpringChildElement(childElm, parserContext, builder)); } else if ("commands".equals(childName)) { Object commandFactory = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("commandFactory", commandFactory); } else if ("messages".equals(childName)) { MessageResource mr = parseMessageResource(childElm, parserContext, builder); factoryBuilder.addPropertyValue("messageResource", mr); } else { throw new FtpServerConfigurationException("Unknown configuration name: " + childName); } } // Configure login limits ConnectionConfigFactory connectionConfig = new ConnectionConfigFactory(); if (StringUtils.hasText(element.getAttribute("max-logins"))) { connectionConfig.setMaxLogins(SpringUtil.parseInt(element, "max-logins")); } if (StringUtils.hasText(element.getAttribute("max-threads"))) { connectionConfig.setMaxThreads(SpringUtil.parseInt(element, "max-threads")); } if (StringUtils.hasText(element.getAttribute("max-anon-logins"))) { connectionConfig.setMaxAnonymousLogins(SpringUtil.parseInt(element, "max-anon-logins")); } if (StringUtils.hasText(element.getAttribute("anon-enabled"))) { connectionConfig.setAnonymousLoginEnabled(SpringUtil.parseBoolean(element, "anon-enabled", true)); } if (StringUtils.hasText(element.getAttribute("max-login-failures"))) { connectionConfig.setMaxLoginFailures(SpringUtil.parseInt(element, "max-login-failures")); } if (StringUtils.hasText(element.getAttribute("login-failure-delay"))) { connectionConfig.setLoginFailureDelay(SpringUtil.parseInt(element, "login-failure-delay")); } factoryBuilder.addPropertyValue("connectionConfig", connectionConfig.createConnectionConfig()); BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition(); String factoryName = parserContext.getReaderContext().generateBeanName(factoryDefinition); BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryName); registerBeanDefinition(factoryHolder, parserContext.getRegistry()); // set the factory on the listener bean builder.getRawBeanDefinition().setFactoryBeanName(factoryName); builder.getRawBeanDefinition().setFactoryMethodName("createServer"); }
From source file:org.solmix.runtime.support.spring.AbstractRootBeanDefinitionParser.java
protected void parseChildElements(Element element, ParserContext parserContext, RootBeanDefinition beanDefinition) { Element el = DOMUtils.getFirstElement(element); while (el != null) { String name = el.getLocalName(); mapElement(parserContext, beanDefinition, el, name); el = DOMUtils.getNextElement(el); }//from w ww . j a va 2 s .c om }
From source file:com.CodeSeance.JSeance.CodeGenXML.DependencyTracking.DependencyManager.java
public DependencyManager(File targetDir) { final String DEPENDENCY_FILENAME = ".jseance-dependencies.xml"; // Output directory must exist already assert targetDir.exists(); // Load the dependencies from disk dependencyFile = new File(targetDir, DEPENDENCY_FILENAME); if (dependencyFile.exists()) { boolean deleteFile = false; try {//w ww. j a va2s .c om // Load the dependencies file XMLLoader xmLoader = XMLLoader.build(false); Document document = xmLoader.loadXML(targetDir, DEPENDENCY_FILENAME); // Get the root node Element rootNode = document.getDocumentElement(); NodeList templateChildren = rootNode.getChildNodes(); // Iterate through the "Template" children for (int i = 0; i < templateChildren.getLength(); i++) { if (templateChildren.item(i) instanceof Element) { Element templateChild = (Element) templateChildren.item(i); // Load the template file entry and store it in this class hashtable File templateFile = new File(templateChild.getAttribute("fileName")); TemplateDependencies templateDependency = new TemplateDependencies(templateFile); templateDependencies.put(templateFile.toString(), templateDependency); // Iterate through the child nodes NodeList dependencyNodes = templateChild.getChildNodes(); for (int j = 0; j < dependencyNodes.getLength(); j++) { if (dependencyNodes.item(j) instanceof Element) { Element dependencyChild = (Element) dependencyNodes.item(j); String localName = dependencyChild.getLocalName(); File dependencyChildFile = new File(dependencyChild.getAttribute("fileName")); if (localName.equals("Input")) { templateDependency.addInputFile(dependencyChildFile); } else if (localName.equals("Output")) { templateDependency.addOutputFile(dependencyChildFile); } else { throw new RuntimeException( String.format("Unexpected dependency node:[%s] in file:[%s]", localName, dependencyFile)); } } } } } } catch (Exception ex) { log.warn(String.format("Cannot parse dependency file:[%s], deleting. Cause:[%s]", dependencyFile, ex.getMessage())); deleteFile = true; } if (deleteFile) { if (!dependencyFile.delete()) { throw new RuntimeException( String.format("Cannot delete corrupt dependency file:[%s]", dependencyFile)); } } } }