Example usage for com.liferay.portal.kernel.xml Element elements

List of usage examples for com.liferay.portal.kernel.xml Element elements

Introduction

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

Prototype

public List<Element> elements(String name);

Source Link

Usage

From source file:com.liferay.httpservice.internal.definition.WebXMLDefinitionLoader.java

License:Open Source License

protected void readFilters(Bundle bundle, Element rootElement, WebXMLDefinition webXML)
        throws IllegalAccessException, InstantiationException {

    List<Element> filterElements = rootElement.elements("filter");

    for (Element filterElement : filterElements) {
        FilterDefinition filterDefinition = new FilterDefinition();

        String filterClassName = filterElement.elementText("filter-class");

        Class<?> clazz = null;

        try {/*from w w  w  . ja v  a2 s.c om*/
            clazz = bundle.loadClass(filterClassName);
        } catch (Exception e) {
            _log.error("Unable to load filter " + filterClassName);

            continue;
        }

        Filter filter = (Filter) clazz.newInstance();

        filterDefinition.setFilter(filter);

        List<Element> initParamElements = filterElement.elements("init-param");

        for (Element initParamElement : initParamElements) {
            String paramName = initParamElement.elementText("param-name");
            String paramValue = initParamElement.elementText("param-value");

            filterDefinition.setInitParameter(paramName, paramValue);
        }

        String filterName = filterElement.elementText("filter-name");

        filterDefinition.setName(filterName);

        List<Element> filterMappingElements = rootElement.elements("filter-mapping");

        for (Element filterMappingElement : filterMappingElements) {
            String filterMappingElementFilterName = filterMappingElement.elementText("filter-name");

            if (filterMappingElementFilterName.equals(filterName)) {
                String urlPattern = getURLPattern(filterMappingElement);

                filterDefinition.addURLPattern(urlPattern);
            }
        }

        webXML.setFilterDefinition(filterName, filterDefinition);
    }
}

From source file:com.liferay.httpservice.internal.definition.WebXMLDefinitionLoader.java

License:Open Source License

protected void readListeners(Bundle bundle, Element rootElement, WebXMLDefinition webXML)
        throws IllegalAccessException, InstantiationException {

    List<Element> listenerElements = rootElement.elements("listener");

    for (Element listenerElement : listenerElements) {
        ListenerDefinition listenerDefinition = new ListenerDefinition();

        String listenerClassName = listenerElement.elementText("listener-class");

        Class<?> clazz = null;

        try {/*from   w  ww. ja  va  2s.c  o  m*/
            clazz = bundle.loadClass(listenerClassName);
        } catch (Exception e) {
            _log.error("Unable to load listener " + listenerClassName);

            continue;
        }

        Object listener = clazz.newInstance();

        listenerDefinition.setListener(listener);

        webXML.addListenerDefinition(listenerDefinition);
    }
}

From source file:com.liferay.httpservice.internal.definition.WebXMLDefinitionLoader.java

License:Open Source License

protected void readServlets(Bundle bundle, Element rootElement, WebXMLDefinition webXML)
        throws IllegalAccessException, InstantiationException {

    List<Element> servletElements = rootElement.elements("servlet");

    for (Element servletElement : servletElements) {
        ServletDefinition servletDefinition = new ServletDefinition();

        String servletClassName = servletElement.elementText("servlet-class");

        Class<?> servletClass = null;
        ;//from  ww  w  . ja  v a  2  s .  c  o  m

        try {
            servletClass = bundle.loadClass(servletClassName);
        } catch (Exception e) {
            _log.error("Unable to load servlet " + servletClassName);

            continue;
        }

        Servlet servlet = (Servlet) servletClass.newInstance();

        servletDefinition.setServlet(servlet);

        List<Element> initParamElements = servletElement.elements("init-param");

        for (Element initParamElement : initParamElements) {
            String paramName = initParamElement.elementText("param-name");
            String paramValue = initParamElement.elementText("param-value");

            servletDefinition.setInitParameter(paramName, paramValue);
        }

        String servletName = servletElement.elementText("servlet-name");

        servletDefinition.setName(servletName);

        List<Element> servletMappingElements = rootElement.elements("servlet-mapping");

        for (Element servletMappingElement : servletMappingElements) {
            String servletMappingElementServletName = servletMappingElement.elementText("servlet-name");

            if (servletMappingElementServletName.equals(servletName)) {
                String urlPattern = getURLPattern(servletMappingElement);

                servletDefinition.addURLPattern(urlPattern);
            }
        }

        webXML.setServletDefinition(servletName, servletDefinition);
    }
}

From source file:com.liferay.journal.internal.exportimport.content.processor.JournalArticleExportImportContentProcessor.java

License:Open Source License

protected String replaceExportJournalArticleReferences(PortletDataContext portletDataContext,
        StagedModel stagedModel, String content, boolean exportReferencedContent) throws Exception {

    Group group = _groupLocalService.fetchGroup(portletDataContext.getGroupId());

    if (group.isStagingGroup()) {
        group = group.getLiveGroup();//from w  ww  . j a  va2s  . co  m
    }

    if (group.isStaged() && !group.isStagedRemotely() && !group.isStagedPortlet(JournalPortletKeys.JOURNAL)) {

        return content;
    }

    Document document = SAXReaderUtil.read(content);

    XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='ddm-journal-article']");

    List<Node> ddmJournalArticleNodes = xPath.selectNodes(document);

    for (Node ddmJournalArticleNode : ddmJournalArticleNodes) {
        Element ddmJournalArticleElement = (Element) ddmJournalArticleNode;

        List<Element> dynamicContentElements = ddmJournalArticleElement.elements("dynamic-content");

        for (Element dynamicContentElement : dynamicContentElements) {
            String jsonData = dynamicContentElement.getStringValue();

            JSONObject jsonObject = _jsonFactory.createJSONObject(jsonData);

            long classPK = GetterUtil.getLong(jsonObject.get("classPK"));

            JournalArticle journalArticle = _journalArticleLocalService.fetchLatestArticle(classPK);

            if (journalArticle == null) {
                if (_log.isInfoEnabled()) {
                    StringBundler messageSB = new StringBundler();

                    messageSB.append("Staged model with class name ");
                    messageSB.append(stagedModel.getModelClassName());
                    messageSB.append(" and primary key ");
                    messageSB.append(stagedModel.getPrimaryKeyObj());
                    messageSB.append(" references missing journal ");
                    messageSB.append("article with class primary key ");
                    messageSB.append(classPK);

                    _log.info(messageSB.toString());
                }

                continue;
            }

            String journalArticleReference = "[$journal-article-reference=" + journalArticle.getPrimaryKey()
                    + "$]";

            if (_log.isDebugEnabled()) {
                _log.debug("Replacing " + jsonData + " with " + journalArticleReference);
            }

            dynamicContentElement.clearContent();

            dynamicContentElement.addCDATA(journalArticleReference);

            if (exportReferencedContent) {
                StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, stagedModel,
                        journalArticle, PortletDataContext.REFERENCE_TYPE_DEPENDENCY);
            } else {
                Element entityElement = portletDataContext.getExportDataElement(stagedModel);

                portletDataContext.addReferenceElement(stagedModel, entityElement, journalArticle,
                        PortletDataContext.REFERENCE_TYPE_DEPENDENCY, true);
            }
        }
    }

    return document.asXML();
}

From source file:com.liferay.journal.internal.exportimport.content.processor.JournalArticleExportImportContentProcessor.java

License:Open Source License

protected void validateJournalArticleReferences(String content) throws PortalException {

    List<Throwable> throwables = new ArrayList<>();

    try {/*  w w w  .j av a2s  .  c  om*/
        Document document = SAXReaderUtil.read(content);

        XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='ddm-journal-article']");

        List<Node> ddmJournalArticleNodes = xPath.selectNodes(document);

        for (Node ddmJournalArticleNode : ddmJournalArticleNodes) {
            Element ddmJournalArticleElement = (Element) ddmJournalArticleNode;

            List<Element> dynamicContentElements = ddmJournalArticleElement.elements("dynamic-content");

            for (Element dynamicContentElement : dynamicContentElements) {
                String json = dynamicContentElement.getStringValue();

                if (Validator.isNull(json)) {
                    if (_log.isDebugEnabled()) {
                        _log.debug("No journal article reference is specified");
                    }

                    continue;
                }

                JSONObject jsonObject = _jsonFactory.createJSONObject(json);

                long classPK = GetterUtil.getLong(jsonObject.get("classPK"));

                JournalArticle journalArticle = _journalArticleLocalService.fetchLatestArticle(classPK);

                if (journalArticle == null) {
                    Throwable throwable = new NoSuchArticleException(
                            "No JournalArticle exists with the key " + "{resourcePrimKey=" + classPK + "}");

                    throwables.add(throwable);
                }
            }
        }
    } catch (DocumentException de) {
        if (_log.isDebugEnabled()) {
            _log.debug("Invalid content:\n" + content);
        }
    }

    if (!throwables.isEmpty()) {
        throw new PortalException(
                new BulkException("Unable to validate journal article references", throwables));
    }
}

From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java

License:Open Source License

protected String convertStaticContentToDynamic(String content) throws Exception {

    Document document = SAXReaderUtil.read(content);

    Document newDocument = SAXReaderUtil.createDocument();

    Element rootElement = document.getRootElement();

    String availableLocales = GetterUtil.getString(rootElement.attributeValue("available-locales"),
            _getDefaultLanguageId());/*from   w  w w .j  a  va  2  s.  c  om*/
    String defaultLocale = GetterUtil.getString(rootElement.attributeValue("default-locale"),
            _getDefaultLanguageId());

    Element newRootElement = SAXReaderUtil.createElement("root");

    newRootElement.addAttribute("available-locales", availableLocales);
    newRootElement.addAttribute("default-locale", defaultLocale);

    newDocument.add(newRootElement);

    Element dynamicElementElement = SAXReaderUtil.createElement("dynamic-element");

    dynamicElementElement.addAttribute("name", "content");
    dynamicElementElement.addAttribute("type", "text_area");
    dynamicElementElement.addAttribute("index-type", "text");
    dynamicElementElement.addAttribute("index", String.valueOf(0));

    newRootElement.add(dynamicElementElement);

    List<Element> staticContentElements = rootElement.elements("static-content");

    for (Element staticContentElement : staticContentElements) {
        String languageId = GetterUtil.getString(staticContentElement.attributeValue("language-id"),
                _getDefaultLanguageId());
        String text = staticContentElement.getText();

        Element dynamicContentElement = SAXReaderUtil.createElement("dynamic-content");

        dynamicContentElement.addAttribute("language-id", languageId);
        dynamicContentElement.addCDATA(text);

        dynamicElementElement.add(dynamicContentElement);
    }

    return XMLUtil.formatXML(newDocument);
}

From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java

License:Open Source License

protected Set<String> getArticleDynamicElements(Element rootElement) {
    List<String> dynamicElementNames = new ArrayList<>();

    List<Element> dynamicElementElements = rootElement.elements("dynamic-element");

    for (Element element : dynamicElementElements) {
        dynamicElementNames.add(element.attributeValue("name"));

        dynamicElementNames.addAll(getArticleDynamicElements(element));
    }//from  w  ww  . j a  v  a2  s  .co  m

    return SetUtil.fromList(dynamicElementNames);
}

From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java

License:Open Source License

protected List<Element> getDDMStructures(Locale locale) throws DocumentException {

    String xml = getContent("basic-web-content-structure.xml");

    xml = StringUtil.replace(xml, "[$LOCALE_DEFAULT$]", locale.toString());

    Document document = SAXReaderUtil.read(xml);

    Element rootElement = document.getRootElement();

    return rootElement.elements("structure");
}

From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java

License:Open Source License

protected void transformDateFieldValues(List<Element> dynamicElementElements) {

    if ((dynamicElementElements == null) || dynamicElementElements.isEmpty()) {

        return;/*w ww .  j  a v a  2  s  .  c  om*/
    }

    for (Element dynamicElementElement : dynamicElementElements) {
        String type = GetterUtil.getString(dynamicElementElement.attributeValue("type"));

        if (type.equals("ddm-date")) {
            List<Element> dynamicContentElements = dynamicElementElement.elements("dynamic-content");

            for (Element dynamicContentElement : dynamicContentElements) {
                transformDateFieldValue(dynamicContentElement);
            }
        }

        List<Element> childDynamicElementElements = dynamicElementElement.elements("dynamic-element");

        transformDateFieldValues(childDynamicElementElements);
    }
}

From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java

License:Open Source License

protected String transformDateFieldValues(String content) throws Exception {
    if (!containsDateFieldType(content)) {
        return content;
    }/*  w w w . j  a  v  a  2s  .c o m*/

    Document document = SAXReaderUtil.read(content);

    Element rootElement = document.getRootElement();

    List<Element> dynamicElementElements = rootElement.elements("dynamic-element");

    transformDateFieldValues(dynamicElementElements);

    return XMLUtil.formatXML(document);
}