Example usage for com.liferay.portal.kernel.xml SAXReaderUtil createXPath

List of usage examples for com.liferay.portal.kernel.xml SAXReaderUtil createXPath

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.xml SAXReaderUtil createXPath.

Prototype

public static XPath createXPath(String xPathExpression, Map<String, String> namespaceContextMap) 

Source Link

Usage

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);
    }
}