Example usage for org.dom4j.io SAXReader setEntityResolver

List of usage examples for org.dom4j.io SAXReader setEntityResolver

Introduction

In this page you can find the example usage for org.dom4j.io SAXReader setEntityResolver.

Prototype

public void setEntityResolver(EntityResolver entityResolver) 

Source Link

Document

Sets the entity resolver used to resolve entities.

Usage

From source file:com.globalsight.everest.tm.util.trados.TradosTmxToRtf.java

License:Apache License

/**
 * Main method to call, returns the new filename of the result.
 */// w  w w .j  a v a2  s .  c o m
public String convertToRtf(String p_url) throws Exception {
    final String baseName = getBaseName(p_url);
    final String extension = getExtension(p_url);

    info("Converting TMX file to RTF: `" + p_url + "'");

    startOutputFile(baseName);

    m_entryCount = 0;

    // Reading from a file, need to use Xerces.
    SAXReader reader = new SAXReader();
    reader.setXMLReaderClassName("org.apache.xerces.parsers.SAXParser");
    reader.setEntityResolver(DtdResolver.getInstance());
    reader.setValidation(true);

    // enable element complete notifications to conserve memory
    reader.addHandler("/tmx", new ElementHandler() {
        public void onStart(ElementPath path) {
            Element element = path.getCurrent();

            m_version = element.attributeValue("version");
        }

        public void onEnd(ElementPath path) {
        }
    });

    // enable element complete notifications to conserve memory
    reader.addHandler("/tmx/header", new ElementHandler() {
        public void onStart(ElementPath path) {
        }

        public void onEnd(ElementPath path) {
            Element element = path.getCurrent();
            setOldHeader(element);

            Element prop = (Element) element.selectSingleNode("/prop[@type='RTFFontTable']");

            if (prop != null)
                writeEntry(prop.getText());

            prop = (Element) element.selectSingleNode("/prop[@type='RTFStyleSheet']");

            if (prop != null)
                writeEntry(prop.getText());

            writeOtherRtfHeader();

            writeDummyParagraph();

            // prune the current element to reduce memory
            element.detach();

            element = null;
        }
    });

    // enable element complete notifications to conserve memory
    reader.addHandler("/tmx/body/tu", new ElementHandler() {
        public void onStart(ElementPath path) {
            ++m_entryCount;
        }

        public void onEnd(ElementPath path) {
            Element element = path.getCurrent();

            element = removeUtElements(element);

            writeEntry(replaceUnicodeChars(removeRtfParagraphs(element.asXML())));
            writeEntry("\\par");

            // prune the current element to reduce memory
            element.detach();

            element = null;

            if (m_entryCount % 1000 == 0) {
                debug("Entry " + m_entryCount);
            }
        }
    });

    Document document = reader.read(p_url);

    closeOutputFile();

    info("Processed " + m_entryCount + " TUs into file `" + m_filename + "'");

    return m_filename;
}

From source file:com.globalsight.everest.webapp.pagehandler.administration.config.xmldtd.XmlDtdManager.java

License:Apache License

/**
 * Validates xml files with specified dtd file.
 * //from w ww .j a  v a2s. c om
 * @param id
 *            The xml dtd id.
 * @param file
 *            The xml file need to validate.
 * @throws DtdException
 */
public static void validateXmlFile(long id, File file) throws DtdException {
    Assert.assertFileExist(file);
    if (file.getName().endsWith(".xml")) {
        logger.debug("File: " + file.getPath());
        File dtdFile = DtdFileManager.getDtdFile(id, file);
        if (dtdFile != null && dtdFile.exists()) {
            logger.debug("DTD: " + dtdFile.getPath());
            SAXReader reader = new SAXReader();
            DtdEntityResolver resolver = new DtdEntityResolver(dtdFile);
            reader.setEntityResolver(resolver);
            reader.setValidation(true);
            Document document;
            try {
                document = reader.read(file);
                document.clearContent();
                logger.debug("Successful");
            } catch (Exception e) {
                logger.info("DTD validation failed: " + e.getMessage());
                throw new DtdException(e);
            }
        }
    }
}

From source file:com.liferay.maven.plugins.util.SAXReaderUtil.java

License:Open Source License

public static Document read(File file, boolean validate) throws Exception {
    SAXReader saxReader = new SAXReader(validate);

    saxReader.setEntityResolver(_entityResolver);

    return saxReader.read(file);
}

From source file:com.liferay.petra.log4j.Log4JUtil.java

License:Open Source License

public static void configureLog4J(URL url) {
    if (url == null) {
        return;// w  ww  .  jav  a 2 s  . c o m
    }

    String urlContent = _getURLContent(url);

    if (urlContent == null) {
        return;
    }

    // See LPS-6029, LPS-8865, and LPS-24280

    DOMConfigurator domConfigurator = new DOMConfigurator();

    domConfigurator.doConfigure(new UnsyncStringReader(urlContent), LogManager.getLoggerRepository());

    try {
        SAXReader saxReader = new SAXReader();

        saxReader.setEntityResolver(new EntityResolver() {

            @Override
            public InputSource resolveEntity(String publicId, String systemId) {

                if (systemId.endsWith("log4j.dtd")) {
                    return new InputSource(DOMConfigurator.class.getResourceAsStream("log4j.dtd"));
                }

                return null;
            }

        });

        Document document = saxReader.read(new UnsyncStringReader(urlContent), url.toExternalForm());

        Element rootElement = document.getRootElement();

        List<Element> categoryElements = rootElement.elements("category");

        for (Element categoryElement : categoryElements) {
            String name = categoryElement.attributeValue("name");

            Element priorityElement = categoryElement.element("priority");

            String priority = priorityElement.attributeValue("value");

            java.util.logging.Logger jdkLogger = java.util.logging.Logger.getLogger(name);

            jdkLogger.setLevel(_getJdkLevel(priority));
        }
    } catch (Exception e) {
        _logger.error(e, e);
    }
}

From source file:com.liferay.portal.ejb.PortletManagerImpl.java

License:Open Source License

private Map _readLiferayDisplayXML(String servletContextName, String xml)
        throws DocumentException, IOException {

    Map categories = new LinkedHashMap();

    if (xml == null) {
        return categories;
    }/*from   w  w w  .jav a 2  s .co m*/

    SAXReader reader = new SAXReader();
    reader.setEntityResolver(null);

    Document doc = reader.read(new StringReader(xml));

    Set portletIds = new HashSet();

    Iterator itr1 = doc.getRootElement().elements("category").iterator();

    while (itr1.hasNext()) {
        Element category = (Element) itr1.next();

        String name = category.attributeValue("name");

        List portlets = new ArrayList();

        Iterator itr2 = category.elements("portlet").iterator();

        while (itr2.hasNext()) {
            Element portlet = (Element) itr2.next();

            String portletId = portlet.attributeValue("id");
            if (servletContextName != null) {
                portletId = servletContextName + PortletConfigImpl.WAR_SEPARATOR + portletId;
            }

            portletIds.add(portletId);

            String status = portlet.attributeValue("status");

            portlets.add(new KeyValuePair(portletId, status));
        }

        if (portlets.size() > 0) {
            categories.put(name, portlets);
        }
    }

    // Portlets that do not belong to any categories should default to the
    // Undefined category

    List undefinedPortlets = new ArrayList();

    itr1 = _getPortletsPool().values().iterator();

    while (itr1.hasNext()) {
        Portlet portlet = (Portlet) itr1.next();

        String portletId = portlet.getPortletId();

        if ((servletContextName != null) && (portlet.isWARFile())
                && (portletId.startsWith(servletContextName) && (!portletIds.contains(portletId)))) {

            undefinedPortlets.add(new KeyValuePair(portletId, null));
        } else if ((servletContextName == null) && (!portlet.isWARFile())
                && (!portletIds.contains(portletId))) {

            undefinedPortlets.add(new KeyValuePair(portletId, null));
        }
    }

    if (undefinedPortlets.size() > 0) {
        categories.put("category.undefined", undefinedPortlets);
    }

    return categories;
}

From source file:com.liferay.portal.ejb.PortletManagerImpl.java

License:Open Source License

private Set _readLiferayPortletXML(String servletContextName, String xml, Map portletsPool)
        throws DocumentException, IOException {

    Set liferayPortletIds = new HashSet();

    if (xml == null) {
        return liferayPortletIds;
    }//from w  ww  . ja va2 s. com

    SAXReader reader = new SAXReader();
    reader.setEntityResolver(null);

    Document doc = reader.read(new StringReader(xml));

    Element root = doc.getRootElement();

    Map customUserAttributes = new HashMap();

    Iterator itr = root.elements("custom-user-attribute").iterator();

    while (itr.hasNext()) {
        Element customUserAttribute = (Element) itr.next();

        String name = customUserAttribute.attributeValue("name");
        String customClass = customUserAttribute.attributeValue("custom-class");

        customUserAttributes.put(name, customClass);
    }

    itr = root.elements("portlet").iterator();

    while (itr.hasNext()) {
        Element portlet = (Element) itr.next();

        String portletId = portlet.attributeValue("id");
        if (servletContextName != null) {
            portletId = servletContextName + PortletConfigImpl.WAR_SEPARATOR + portletId;
        }

        liferayPortletIds.add(portletId);

        Portlet portletModel = (Portlet) portletsPool.get(portletId);

        if (portletModel != null) {
            portletModel.setStrutsPath(
                    GetterUtil.get(portlet.attributeValue("struts-path"), portletModel.getStrutsPath()));
            portletModel.setIndexerClass(
                    GetterUtil.get(portlet.attributeValue("indexer-class"), portletModel.getIndexerClass()));
            portletModel.setSchedulerClass(GetterUtil.get(portlet.attributeValue("scheduler-class"),
                    portletModel.getSchedulerClass()));
            portletModel.setPreferencesSharingType(
                    GetterUtil.get(portlet.attributeValue("preferences-sharing-type"),
                            portletModel.getPreferencesSharingType()));
            portletModel.setUseDefaultTemplate(GetterUtil.get(portlet.attributeValue("use-default-template"),
                    portletModel.isUseDefaultTemplate()));
            portletModel.setShowPortletAccessDenied(
                    GetterUtil.get(portlet.attributeValue("show-portlet-access-denied"),
                            portletModel.isShowPortletAccessDenied()));
            portletModel.setShowPortletInactive(GetterUtil.get(portlet.attributeValue("show-portlet-inactive"),
                    portletModel.isShowPortletInactive()));
            portletModel.setRestoreCurrentView(GetterUtil.get(portlet.attributeValue("restore-current-view"),
                    portletModel.isRestoreCurrentView()));
            portletModel.setNs4Compatible(
                    GetterUtil.get(portlet.attributeValue("ns-4-compatible"), portletModel.isNs4Compatible()));
            portletModel.setNarrow(GetterUtil.get(portlet.attributeValue("narrow"), portletModel.isNarrow()));
            portletModel.setActive(GetterUtil.get(portlet.attributeValue("active"), portletModel.isActive()));
            portletModel
                    .setInclude(GetterUtil.get(portlet.attributeValue("include"), portletModel.isInclude()));

            portletModel.getCustomUserAttributes().putAll(customUserAttributes);
        }
    }

    return liferayPortletIds;
}

From source file:com.liferay.portal.servlet.MainServlet.java

License:Open Source License

private void _checkWebSettings(String xml) throws DocumentException {
    SAXReader reader = new SAXReader();
    reader.setEntityResolver(null);

    Document doc = reader.read(new StringReader(xml));

    Element root = doc.getRootElement();

    int timeout = GetterUtil.getInteger(PropsUtil.get(PropsUtil.SESSION_TIMEOUT));

    Element sessionConfig = root.element("session-config");

    if (sessionConfig != null) {
        String sessionTimeout = sessionConfig.elementText("session-timeout");

        timeout = GetterUtil.get(sessionConfig.elementText("session-timeout"), timeout);
    }// w w  w.  j a v  a 2  s  . co m

    PropsUtil.set(PropsUtil.SESSION_TIMEOUT, Integer.toString(timeout));
}

From source file:com.liferay.portal.tools.EARXMLBuilder.java

License:Open Source License

private String _buildPramatiXMLWebModule(String path) throws DocumentException, IOException {

    String contextRoot = path.substring(2, path.length() - 4);
    String filePath = path + "/docroot/WEB-INF/web.xml";

    if (path.endsWith("-complete")) {
        contextRoot = "/";
        filePath = path.substring(0, path.length() - 9) + "/docroot/WEB-INF/web.xml";
    }//from   www  .j  a  v  a2s  . c om

    StringBuffer sb = new StringBuffer();

    sb.append("\t<web-module>\n");
    sb.append("\t\t<name>").append(contextRoot).append("</name>\n");
    sb.append("\t\t<module-name>").append(path.substring(3, path.length())).append(".war</module-name>\n");

    SAXReader reader = new SAXReader();
    reader.setEntityResolver(new EntityResolver());

    Document doc = reader.read(new File(filePath));

    Iterator itr = doc.getRootElement().elements("ejb-local-ref").iterator();

    while (itr.hasNext()) {
        Element ejbLocalRef = (Element) itr.next();

        sb.append("\t\t<ejb-local-ref>\n");
        sb.append("\t\t\t<ejb-ref-name>").append(ejbLocalRef.elementText("ejb-ref-name"))
                .append("</ejb-ref-name>\n");
        sb.append("\t\t\t<ejb-link>").append(ejbLocalRef.elementText("ejb-link")).append("</ejb-link>\n");
        sb.append("\t\t</ejb-local-ref>\n");
    }

    itr = doc.getRootElement().elements("resource-ref").iterator();

    while (itr.hasNext()) {
        Element resourceRef = (Element) itr.next();

        sb.append("\t\t<resource-mapping>\n");
        sb.append("\t\t\t<resource-name>").append(resourceRef.elementText("res-ref-name"))
                .append("</resource-name>\n");
        sb.append("\t\t\t<resource-type>").append(resourceRef.elementText("res-type"))
                .append("</resource-type>\n");
        sb.append("\t\t\t<resource-link>").append(resourceRef.elementText("res-ref-name"))
                .append("</resource-link>\n");
        sb.append("\t\t</resource-mapping>\n");
    }

    sb.append("\t</web-module>\n");

    return sb.toString();
}

From source file:com.liferay.portal.tools.EJBXMLBuilder.java

License:Open Source License

private void _buildBorlandXML() throws Exception {
    StringBuffer sb = new StringBuffer();

    sb.append("<?xml version=\"1.0\"?>\n");
    sb.append(// w w w.ja v  a2s .  c  o m
            "<!DOCTYPE ejb-jar PUBLIC \"-//Borland Software Corporation//DTD Enterprise JavaBeans 2.0//EN\" \"http://www.borland.com/devsupport/appserver/dtds/ejb-jar_2_0-borland.dtd\">\n");

    sb.append("\n<ejb-jar>\n");
    sb.append("\t<enterprise-beans>\n");

    SAXReader reader = new SAXReader();
    reader.setEntityResolver(new EntityResolver());

    Document doc = reader.read(new File("classes/META-INF/ejb-jar.xml"));

    Iterator itr = doc.getRootElement().element("enterprise-beans").elements("session").iterator();

    while (itr.hasNext()) {
        Element entity = (Element) itr.next();

        sb.append("\t\t<session>\n");
        sb.append("\t\t\t<ejb-name>").append(entity.elementText("ejb-name")).append("</ejb-name>\n");

        if (entity.elementText("display-name").endsWith("LocalManagerEJB")) {
            sb.append("\t\t\t<bean-local-home-name>ejb/liferay/").append(entity.elementText("display-name"))
                    .append("Home</bean-local-home-name>\n");
        } else {
            sb.append("\t\t\t<bean-home-name>").append(entity.elementText("ejb-name"))
                    .append("</bean-home-name>\n");
        }

        sb.append("\t\t</session>\n");
    }

    sb.append("\t</enterprise-beans>\n");
    sb.append("\t<property>\n");
    sb.append("\t\t<prop-name>ejb.default_transaction_attribute</prop-name>\n");
    sb.append("\t\t<prop-type>String</prop-type>\n");
    sb.append("\t\t<prop-value>Supports</prop-value>\n");
    sb.append("\t</property>\n");
    sb.append("</ejb-jar>");

    File outputFile = new File("classes/META-INF/ejb-borland.xml");

    if (!outputFile.exists() || !FileUtil.read(outputFile).equals(sb.toString())) {

        FileUtil.write(outputFile, sb.toString());

        Logger.info(this, outputFile.toString());
    }
}

From source file:com.liferay.portal.tools.EJBXMLBuilder.java

License:Open Source License

private void _buildJOnASXML() throws Exception {
    StringBuffer sb = new StringBuffer();

    sb.append("<?xml version=\"1.0\"?>\n");
    sb.append(/*from  www . j  a  v a2  s  . com*/
            "<!DOCTYPE jonas-ejb-jar PUBLIC \"-//ObjectWeb//DTD JOnAS 3.2//EN\" \"http://www.objectweb.org/jonas/dtds/jonas-ejb-jar_3_2.dtd\">\n");

    sb.append("\n<jonas-ejb-jar>\n");

    SAXReader reader = new SAXReader();
    reader.setEntityResolver(new EntityResolver());

    Document doc = reader.read(new File("classes/META-INF/ejb-jar.xml"));

    Iterator itr = doc.getRootElement().element("enterprise-beans").elements("session").iterator();

    while (itr.hasNext()) {
        Element entity = (Element) itr.next();

        sb.append("\t<jonas-session>\n");
        sb.append("\t\t<ejb-name>").append(entity.elementText("ejb-name")).append("</ejb-name>\n");

        if (entity.elementText("display-name").endsWith("LocalManagerEJB")) {
            sb.append("\t\t<jndi-name>ejb/liferay/").append(entity.elementText("display-name"))
                    .append("Home</jndi-name>\n");
        } else {
            sb.append("\t\t<jndi-name>").append(entity.elementText("ejb-name")).append("</jndi-name>\n");
        }

        sb.append("\t</jonas-session>\n");
    }

    sb.append("</jonas-ejb-jar>");

    File outputFile = new File("classes/META-INF/jonas-ejb-jar.xml");

    if (!outputFile.exists() || !FileUtil.read(outputFile).equals(sb.toString())) {

        FileUtil.write(outputFile, sb.toString());

        Logger.info(this, outputFile.toString());
    }
}