List of usage examples for com.liferay.portal.kernel.xml SAXReaderUtil createXPath
public static XPath createXPath(String xPathExpression, Map<String, String> namespaceContextMap)
From source file:com.liferay.web.extender.internal.WebXMLLoader.java
License:Open Source License
protected static void loadFilters(Bundle bundle, Element root, WebXML webXML) throws Exception { Map<String, FilterDefinition> filters = webXML.getFilters(); for (Element filterMappingsEl : root.elements("filter-mapping")) { String filterName = filterMappingsEl.element("filter-name").getTextTrim(); String urlPattern = filterMappingsEl.element("url-pattern").getTextTrim(); Map<String, String> namespaces = new TreeMap<String, String>(); namespaces.put("x", root.getNamespace().getText()); XPath xPath = SAXReaderUtil.createXPath("//x:filter[x:filter-name/text() ='" + filterName + "']", namespaces);// www . ja v a 2s .c om Element filterElement = (Element) xPath.selectSingleNode(root); if (filterElement == null) { continue; } if (urlPattern.endsWith("/*") && (urlPattern.length() > 2)) { urlPattern = urlPattern.substring(0, urlPattern.length() - 2); } if (urlPattern.startsWith("*")) { urlPattern = "/".concat(urlPattern); } String filterClass = filterElement.element("filter-class").getTextTrim(); FilterDefinition filterDefinition = null; try { Filter filterInstance = (Filter) bundle.loadClass(filterClass).newInstance(); filterDefinition = new FilterDefinition(); filterDefinition.setFilter(filterInstance); filterDefinition.setName(filterName); } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn(e.getMessage()); } continue; } for (Element initParam : filterElement.elements("init-param")) { String initParamName = initParam.element("param-name").getTextTrim(); String initParamValue = initParam.element("param-value").getTextTrim(); filterDefinition.setInitParam(initParamName, initParamValue); } filters.put(urlPattern, filterDefinition); } }
From source file:com.liferay.web.extender.internal.WebXMLLoader.java
License:Open Source License
protected static void loadServlets(Bundle bundle, Element root, WebXML webXML) throws Exception { Map<String, ServletDefinition> servlets = webXML.getServlets(); for (Element servletMappingsEl : root.elements("servlet-mapping")) { String servletName = servletMappingsEl.element("servlet-name").getTextTrim(); String urlPattern = servletMappingsEl.element("url-pattern").getTextTrim(); Map<String, String> namespaces = new TreeMap<String, String>(); namespaces.put("x", root.getNamespace().getText()); XPath xPath = SAXReaderUtil.createXPath("//x:servlet[x:servlet-name/text()='" + servletName + "']", namespaces);//w w w.j a va 2s. c o m Element servletElement = (Element) xPath.selectSingleNode(root); if (servletElement == null) { continue; } if (urlPattern.endsWith("/*") && (urlPattern.length() > 2)) { urlPattern = urlPattern.substring(0, urlPattern.length() - 2); } if (urlPattern.startsWith("*.")) { urlPattern = "/".concat(urlPattern); } String servletClass = servletElement.element("servlet-class").getTextTrim(); ServletDefinition servletDefinition = null; try { Class<?> clazz = bundle.loadClass(servletClass); Servlet servletInstance = (Servlet) clazz.newInstance(); servletDefinition = new ServletDefinition(); servletDefinition.setServlet(servletInstance); servletDefinition.setName(servletName); } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn(e.getMessage()); } continue; } for (Element initParam : servletElement.elements("init-param")) { String initParamName = initParam.element("param-name").getTextTrim(); String initParamValue = initParam.element("param-value").getTextTrim(); servletDefinition.setInitParam(initParamName, initParamValue); } servlets.put(urlPattern, servletDefinition); } }