Example usage for org.dom4j.io SAXReader read

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

Introduction

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

Prototype

public Document read(InputSource in) throws DocumentException 

Source Link

Document

Reads a Document from the given InputSource using SAX

Usage

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

License:Open Source License

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

    sb.append("<?xml version=\"1.0\"?>\n");
    sb.append(/*from www .  jav a 2  s  .  c  o m*/
            "<!DOCTYPE jrun-ejb-jar PUBLIC \"-//Macromedia, Inc.//DTD jrun-ejb-jar 4.0//EN\" \"http://jrun.macromedia.com/dtds/jrun-ejb-jar.dtd\">\n");

    sb.append("\n<jrun-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<local-jndi-name>ejb/liferay/").append(entity.elementText("display-name"))
                    .append("Home</local-jndi-name>\n");
        } else {
            sb.append("\t\t\t<jndi-name>").append(entity.elementText("ejb-name")).append("</jndi-name>\n");
        }

        sb.append("\t\t\t<cluster-home>false</cluster-home>\n");
        sb.append("\t\t\t<cluster-object>false</cluster-object>\n");
        sb.append("\t\t\t<timeout>3000</timeout>\n");
        sb.append("\t\t</session>\n");
    }

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

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

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

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

        Logger.info(EJBXMLBuilder.class, outputFile.toString());
    }
}

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

License:Open Source License

private void _buildPramatiXML() throws Exception {
    Map tableNames = new HashMap();

    StringBuffer sb = new StringBuffer();

    sb.append("<?xml version=\"1.0\"?>\n");
    sb.append(/*from w w w.jav a 2s  . c om*/
            "<!DOCTYPE pramati-j2ee-server PUBLIC \"-//Pramati Technologies //DTD Pramati J2ee Server 3.5 SP5//EN\" \"http://www.pramati.com/dtd/pramati-j2ee-server_3_5.dtd\">\n");

    sb.append("\n<pramati-j2ee-server>\n");
    sb.append("\t<vhost-name>default</vhost-name>\n");
    sb.append("\t<auto-start>TRUE</auto-start>\n");
    sb.append("\t<realm-name />\n");
    sb.append("\t<ejb-module>\n");
    sb.append("\t\t<name>").append(_jarFileName).append("</name>\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<ejb>\n");
        sb.append("\t\t\t<name>").append(entity.elementText("ejb-name")).append("</name>\n");
        sb.append("\t\t\t<max-pool-size>40</max-pool-size>\n");
        sb.append("\t\t\t<min-pool-size>20</min-pool-size>\n");
        sb.append("\t\t\t<enable-freepool>false</enable-freepool>\n");
        sb.append("\t\t\t<pool-waittimeout-millis>60000</pool-waittimeout-millis>\n");

        sb.append("\t\t\t<low-activity-interval>20</low-activity-interval>\n");
        sb.append("\t\t\t<is-secure>false</is-secure>\n");
        sb.append("\t\t\t<is-clustered>true</is-clustered>\n");

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

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

        sb.append(_buildPramatiXMLRefs(entity));

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

    sb.append("\t</ejb-module>\n");
    sb.append("</pramati-j2ee-server>");

    File outputFile = new File("classes/pramati-j2ee-server.xml");

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

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

        Logger.info(EJBXMLBuilder.class, outputFile.toString());
    }
}

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

License:Open Source License

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

    sb.append("<?xml version=\"1.0\"?>\n");

    sb.append("\n<rexip-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<local-jndi-name>ejb/liferay/").append(entity.elementText("display-name"))
                    .append("Home</local-jndi-name>\n");
        } else {/*  w w  w .ja  va 2 s  . c om*/
            sb.append("\t\t\t<jndi-name>").append(entity.elementText("ejb-name")).append("</jndi-name>\n");
        }

        sb.append("\t\t\t<clustered>true</clustered>\n");
        sb.append("\t\t\t<pool-size>20</pool-size>\n");
        sb.append("\t\t\t<cache-size>20</cache-size>\n");
        sb.append("\t\t</session>\n");
    }

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

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

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

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

        Logger.info(EJBXMLBuilder.class, outputFile.toString());
    }
}

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

License:Open Source License

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

    sb.append("<?xml version=\"1.0\"?>\n");
    sb.append(//  w w w .  j  a  v  a2 s.  c  o m
            "<!DOCTYPE sun-ejb-jar PUBLIC \"-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 7.0 EJB 2.0//EN\" \"http://www.sun.com/software/sunone/appserver/dtds/sun-ejb-jar_2_0-0.dtd\">\n");

    sb.append("\n<sun-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<ejb>\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<jndi-name>ejb/liferay/").append(entity.elementText("display-name"))
                    .append("Home</jndi-name>\n");
        } else {
            sb.append("\t\t\t<jndi-name>").append(entity.elementText("ejb-name")).append("</jndi-name>\n");
        }

        sb.append("\t\t\t<bean-pool>\n");
        sb.append("\t\t\t\t<steady-pool-size>0</steady-pool-size>\n");
        sb.append("\t\t\t\t<resize-quantity>60</resize-quantity>\n");
        sb.append("\t\t\t\t<max-pool-size>60</max-pool-size>\n");
        sb.append("\t\t\t\t<pool-idle-timeout-in-seconds>900</pool-idle-timeout-in-seconds>\n");
        sb.append("\t\t\t</bean-pool>\n");
        sb.append("\t\t</ejb>\n");
    }

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

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

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

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

        Logger.info(EJBXMLBuilder.class, outputFile.toString());
    }
}

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

License:Open Source License

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

    sb.append("<?xml version=\"1.0\"?>\n");
    sb.append(//  w ww . ja va 2s  .c  o  m
            "<!DOCTYPE weblogic-ejb-jar PUBLIC \"-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN\" \"http://www.bea.com/servers/wls700/dtd/weblogic-ejb-jar.dtd\">\n");

    sb.append("\n<weblogic-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<weblogic-enterprise-bean>\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<local-jndi-name>ejb/liferay/").append(entity.elementText("display-name"))
                    .append("Home</local-jndi-name>\n");
        } else {
            sb.append("\t\t<jndi-name>").append(entity.elementText("ejb-name")).append("</jndi-name>\n");
        }

        sb.append("\t</weblogic-enterprise-bean>\n");
    }

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

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

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

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

        Logger.info(EJBXMLBuilder.class, outputFile.toString());
    }
}

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

License:Open Source License

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

    sb.append("<?xml version=\"1.0\"?>\n");

    sb.append(/*ww w . j  a  v a  2  s  .c om*/
            "\n<com.ibm.ejs.models.base.bindings.ejbbnd:EJBJarBinding xmlns:com.ibm.ejs.models.base.bindings.ejbbnd=\"ejbbnd.xmi\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:com.ibm.ejs.models.base.bindings.commonbnd=\"commonbnd.xmi\" xmlns:com.ibm.etools.ejb=\"ejb.xmi\" xmlns:com.ibm.etools.j2ee.common=\"common.xmi\" xmi:version=\"2.0\" xmi:id=\"ejb-jar_ID_Bnd\" currentBackendId=\"CLOUDSCAPE_V50_1\">\n");
    sb.append("\t<ejbJar href=\"META-INF/ejb-jar.xml#ejb-jar_ID\" />\n");

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

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

    int sessionCount = 0;
    int ejbLocalRefCount = 0;

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

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

        sb.append("\t<ejbBindings xmi:id=\"Session_").append(++sessionCount).append("_Bnd\" jndiName=\"");

        if (sessionEl.elementText("display-name").endsWith("LocalManagerEJB")) {
            sb.append("ejb/liferay/").append(sessionEl.elementText("display-name")).append("Home");
        } else {
            sb.append(sessionEl.elementText("ejb-name"));
        }

        sb.append("\">\n");

        sb.append(
                "\t\t<enterpriseBean xmi:type=\"com.ibm.etools.ejb:Session\" href=\"META-INF/ejb-jar.xml#Session_")
                .append(sessionCount).append("\" />\n");

        Iterator itr2 = sessionEl.elements("ejb-local-ref").iterator();

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

            sb.append("\t\t<ejbRefBindings xmi:id=\"EjbRefBinding_").append(++ejbLocalRefCount)
                    .append("\" jndiName=\"").append(ejbLocalRefEl.elementText("ejb-ref-name")).append("\">\n");
            sb.append(
                    "\t\t\t<bindingEjbRef xmi:type=\"com.ibm.etools.j2ee.common:EJBLocalRef\" href=\"META-INF/ejb-jar.xml#EjbRef_")
                    .append(ejbLocalRefCount).append("\" />\n");
            sb.append("\t\t</ejbRefBindings>\n");
        }

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

    sb.append("</com.ibm.ejs.models.base.bindings.ejbbnd:EJBJarBinding>");

    File outputFile = new File("classes/META-INF/ibm-ejb-jar-bnd.xmi");

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

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

        Logger.info(EJBXMLBuilder.class, outputFile.toString());
    }
}

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

License:Open Source License

private void _updateEJBXML() throws Exception {
    File xmlFile = new File("classes/META-INF/ejb-jar.xml");

    StringBuffer methodsSB = new StringBuffer();

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

    Document doc = reader.read(xmlFile);

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

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

        methodsSB.append("\t\t\t<method>\n");
        methodsSB.append("\t\t\t\t<ejb-name>" + entity.elementText("ejb-name") + "</ejb-name>\n");
        methodsSB.append("\t\t\t\t<method-name>*</method-name>\n");
        methodsSB.append("\t\t\t</method>\n");
    }// w  ww  .j a  va 2  s .c  om

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

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

        methodsSB.append("\t\t\t<method>\n");
        methodsSB.append("\t\t\t\t<ejb-name>" + entity.elementText("ejb-name") + "</ejb-name>\n");
        methodsSB.append("\t\t\t\t<method-name>*</method-name>\n");
        methodsSB.append("\t\t\t</method>\n");
    }

    StringBuffer sb = new StringBuffer();

    sb.append("\t<assembly-descriptor>\n");
    sb.append("\t\t<method-permission>\n");
    sb.append("\t\t\t<unchecked />\n");
    sb.append(methodsSB);
    sb.append("\t\t</method-permission>\n");
    sb.append("\t\t<container-transaction>\n");
    sb.append(methodsSB);
    sb.append("\t\t\t<trans-attribute>Required</trans-attribute>\n");
    sb.append("\t\t</container-transaction>\n");
    sb.append("\t</assembly-descriptor>\n");

    String content = FileUtil.read(xmlFile);

    int x = content.indexOf("<assembly-descriptor>") - 1;
    int y = content.indexOf("</assembly-descriptor>", x) + 23;

    if (x < 0) {
        x = content.indexOf("</ejb-jar>");
        y = x;
    }

    String newContent = content.substring(0, x) + sb.toString() + content.substring(y, content.length());

    if (!content.equals(newContent)) {
        FileUtil.write(xmlFile, newContent);
    }
}

From source file:com.liferay.portal.tools.service.builder.ServiceBuilder.java

License:Open Source License

public ServiceBuilder(String apiDirName, boolean autoImportDefaultReferences, boolean autoNamespaceTables,
        String beanLocatorUtil, long buildNumber, boolean buildNumberIncrement, String hbmFileName,
        String implDirName, String inputFileName, String modelHintsFileName, boolean osgiModule,
        String pluginName, String propsUtil, String[] readOnlyPrefixes, String remotingFileName,
        Set<String> resourceActionModels, String resourcesDirName, String springFileName,
        String[] springNamespaces, String sqlDirName, String sqlFileName, String sqlIndexesFileName,
        String sqlSequencesFileName, String targetEntityName, String testDirName, boolean build)
        throws Exception {

    _tplBadAliasNames = _getTplProperty("bad_alias_names", _tplBadAliasNames);
    _tplBadColumnNames = _getTplProperty("bad_column_names", _tplBadColumnNames);
    _tplBadTableNames = _getTplProperty("bad_table_names", _tplBadTableNames);
    _tplBlobModel = _getTplProperty("blob_model", _tplBlobModel);
    _tplEjbPk = _getTplProperty("ejb_pk", _tplEjbPk);
    _tplException = _getTplProperty("exception", _tplException);
    _tplExtendedModel = _getTplProperty("extended_model", _tplExtendedModel);
    _tplExtendedModelBaseImpl = _getTplProperty("extended_model_base_impl", _tplExtendedModelBaseImpl);
    _tplExtendedModelImpl = _getTplProperty("extended_model_impl", _tplExtendedModelImpl);
    _tplFinder = _getTplProperty("finder", _tplFinder);
    _tplFinderUtil = _getTplProperty("finder_util", _tplFinderUtil);
    _tplHbmXml = _getTplProperty("hbm_xml", _tplHbmXml);
    _tplJsonJs = _getTplProperty("json_js", _tplJsonJs);
    _tplJsonJsMethod = _getTplProperty("json_js_method", _tplJsonJsMethod);
    _tplModel = _getTplProperty("model", _tplModel);
    _tplModelCache = _getTplProperty("model_cache", _tplModelCache);
    _tplModelClp = _getTplProperty("model", _tplModelClp);
    _tplModelHintsXml = _getTplProperty("model_hints_xml", _tplModelHintsXml);
    _tplModelImpl = _getTplProperty("model_impl", _tplModelImpl);
    _tplModelSoap = _getTplProperty("model_soap", _tplModelSoap);
    _tplModelWrapper = _getTplProperty("model_wrapper", _tplModelWrapper);
    _tplPersistence = _getTplProperty("persistence", _tplPersistence);
    _tplPersistenceImpl = _getTplProperty("persistence_impl", _tplPersistenceImpl);
    _tplPersistenceUtil = _getTplProperty("persistence_util", _tplPersistenceUtil);
    _tplProps = _getTplProperty("props", _tplProps);
    _tplRemotingXml = _getTplProperty("remoting_xml", _tplRemotingXml);
    _tplService = _getTplProperty("service", _tplService);
    _tplServiceBaseImpl = _getTplProperty("service_base_impl", _tplServiceBaseImpl);
    _tplServiceClp = _getTplProperty("service_clp", _tplServiceClp);
    _tplServiceClpInvoker = _getTplProperty("service_clp_invoker", _tplServiceClpInvoker);
    _tplServiceClpMessageListener = _getTplProperty("service_clp_message_listener",
            _tplServiceClpMessageListener);
    _tplServiceClpSerializer = _getTplProperty("service_clp_serializer", _tplServiceClpSerializer);
    _tplServiceHttp = _getTplProperty("service_http", _tplServiceHttp);
    _tplServiceImpl = _getTplProperty("service_impl", _tplServiceImpl);
    _tplServicePropsUtil = _getTplProperty("service_props_util", _tplServicePropsUtil);
    _tplServiceSoap = _getTplProperty("service_soap", _tplServiceSoap);
    _tplServiceUtil = _getTplProperty("service_util", _tplServiceUtil);
    _tplServiceWrapper = _getTplProperty("service_wrapper", _tplServiceWrapper);
    _tplSpringXml = _getTplProperty("spring_xml", _tplSpringXml);

    try {//  ww w . j  ava2  s. co m
        _apiDirName = apiDirName;
        _autoImportDefaultReferences = autoImportDefaultReferences;
        _autoNamespaceTables = autoNamespaceTables;
        _beanLocatorUtil = beanLocatorUtil;
        _buildNumber = buildNumber;
        _buildNumberIncrement = buildNumberIncrement;
        _hbmFileName = hbmFileName;
        _implDirName = implDirName;
        _modelHintsFileName = modelHintsFileName;
        _osgiModule = osgiModule;
        _pluginName = GetterUtil.getString(pluginName);
        _propsUtil = propsUtil;
        _readOnlyPrefixes = readOnlyPrefixes;
        _remotingFileName = remotingFileName;
        _resourceActionModels = resourceActionModels;
        _resourcesDirName = resourcesDirName;
        _springFileName = springFileName;

        _springNamespaces = springNamespaces;

        if (!ArrayUtil.contains(_springNamespaces, _SPRING_NAMESPACE_BEANS)) {

            _springNamespaces = ArrayUtil.append(_springNamespaces, _SPRING_NAMESPACE_BEANS);
        }

        _sqlDirName = sqlDirName;
        _sqlFileName = sqlFileName;
        _sqlIndexesFileName = sqlIndexesFileName;
        _sqlSequencesFileName = sqlSequencesFileName;
        _targetEntityName = targetEntityName;
        _testDirName = testDirName;
        _build = build;

        _badTableNames = _readLines(_tplBadTableNames);
        _badAliasNames = _readLines(_tplBadAliasNames);
        _badColumnNames = _readLines(_tplBadColumnNames);

        _beanLocatorUtilShortName = _beanLocatorUtil.substring(_beanLocatorUtil.lastIndexOf(".") + 1);

        SAXReader saxReader = _getSAXReader();

        Document document = saxReader.read(new XMLSafeReader(getContent(inputFileName)));

        Element rootElement = document.getRootElement();

        String packagePath = rootElement.attributeValue("package-path");

        if (Validator.isNull(packagePath)) {
            throw new IllegalArgumentException("The package-path attribute is required");
        }

        _outputPath = _implDirName + "/" + StringUtil.replace(packagePath, ".", "/");

        _serviceOutputPath = _apiDirName + "/" + StringUtil.replace(packagePath, ".", "/");

        if (Validator.isNotNull(_testDirName)) {
            _testOutputPath = _testDirName + "/" + StringUtil.replace(packagePath, ".", "/");
        }

        _packagePath = packagePath;

        _autoImportDefaultReferences = GetterUtil.getBoolean(
                rootElement.attributeValue("auto-import-default-references"), _autoImportDefaultReferences);
        _autoNamespaceTables = GetterUtil.getBoolean(rootElement.attributeValue("auto-namespace-tables"),
                _autoNamespaceTables);
        _mvccEnabled = GetterUtil.getBoolean(rootElement.attributeValue("mvcc-enabled"));

        Element authorElement = rootElement.element("author");

        if (authorElement != null) {
            _author = authorElement.getText();
        } else {
            _author = AUTHOR;
        }

        Element portletElement = rootElement.element("portlet");
        Element namespaceElement = rootElement.element("namespace");

        if (portletElement != null) {
            _portletName = portletElement.attributeValue("name");

            _portletShortName = portletElement.attributeValue("short-name");

            _portletPackageName = TextFormatter.format(_portletName, TextFormatter.B);

            _outputPath += "/" + _portletPackageName;

            _serviceOutputPath += "/" + _portletPackageName;

            _testOutputPath += "/" + _portletPackageName;

            _packagePath += "." + _portletPackageName;
        } else {
            _portletShortName = namespaceElement.getText();
        }

        _portletShortName = _portletShortName.trim();

        for (char c : _portletShortName.toCharArray()) {
            if (!Validator.isChar(c) && (c != CharPool.UNDERLINE)) {
                throw new RuntimeException("The namespace element must be a valid keyword");
            }
        }

        _ejbList = new ArrayList<>();
        _entityMappings = new HashMap<>();

        List<Element> entityElements = rootElement.elements("entity");

        for (Element entityElement : entityElements) {
            _parseEntity(entityElement);
        }

        List<String> exceptionList = new ArrayList<>();

        Element exceptionsElement = rootElement.element("exceptions");

        if (exceptionsElement != null) {
            List<Element> exceptionElements = exceptionsElement.elements("exception");

            for (Element exceptionElement : exceptionElements) {
                exceptionList.add(exceptionElement.getText());
            }
        }

        if (build) {
            for (int x = 0; x < _ejbList.size(); x++) {
                Entity entity = _ejbList.get(x);

                if (_isTargetEntity(entity)) {
                    System.out.println("Building " + entity.getName());

                    _resolveEntity(entity);

                    if (entity.hasActionableDynamicQuery()) {
                        _createActionableDynamicQuery(entity);

                        if (entity.isStagedModel()) {
                            _createExportActionableDynamicQuery(entity);
                        } else {
                            _removeExportActionableDynamicQuery(entity);
                        }
                    } else {
                        _removeActionableDynamicQuery(entity);
                        _removeExportActionableDynamicQuery(entity);
                    }

                    if (entity.hasColumns()) {
                        _createHbm(entity);
                        _createHbmUtil(entity);

                        _createPersistenceImpl(entity);
                        _createPersistence(entity);
                        _createPersistenceUtil(entity);

                        if (Validator.isNotNull(_testDirName)) {
                            _createPersistenceTest(entity);
                        }

                        _createModelImpl(entity);
                        _createExtendedModelBaseImpl(entity);
                        _createExtendedModelImpl(entity);

                        entity.setTransients(_getTransients(entity, false));
                        entity.setParentTransients(_getTransients(entity, true));

                        _createModel(entity);
                        _createExtendedModel(entity);

                        _createModelCache(entity);
                        _createModelClp(entity);
                        _createModelWrapper(entity);

                        _createModelSoap(entity);

                        _createBlobModels(entity);

                        _createPool(entity);

                        if (entity.getPKList().size() > 1) {
                            _createEJBPK(entity);
                        }
                    }

                    _createFinder(entity);
                    _createFinderUtil(entity);

                    if (entity.hasLocalService()) {
                        _createServiceImpl(entity, _SESSION_TYPE_LOCAL);
                        _createServiceBaseImpl(entity, _SESSION_TYPE_LOCAL);
                        _createService(entity, _SESSION_TYPE_LOCAL);
                        _createServiceFactory(entity, _SESSION_TYPE_LOCAL);
                        _createServiceUtil(entity, _SESSION_TYPE_LOCAL);

                        _createServiceClp(entity, _SESSION_TYPE_LOCAL);
                        _createServiceClpInvoker(entity, _SESSION_TYPE_LOCAL);
                        _createServiceWrapper(entity, _SESSION_TYPE_LOCAL);
                    } else {
                        _removeServiceImpl(entity, _SESSION_TYPE_LOCAL);
                        _removeServiceBaseImpl(entity, _SESSION_TYPE_LOCAL);
                        _removeService(entity, _SESSION_TYPE_LOCAL);
                        _removeServiceUtil(entity, _SESSION_TYPE_LOCAL);

                        _removeServiceClp(entity, _SESSION_TYPE_LOCAL);
                        _removeServiceClpInvoker(entity, _SESSION_TYPE_LOCAL);
                        _removeServiceWrapper(entity, _SESSION_TYPE_LOCAL);
                    }

                    if (entity.hasRemoteService()) {
                        _createServiceImpl(entity, _SESSION_TYPE_REMOTE);
                        _createServiceBaseImpl(entity, _SESSION_TYPE_REMOTE);
                        _createService(entity, _SESSION_TYPE_REMOTE);
                        _createServiceFactory(entity, _SESSION_TYPE_REMOTE);
                        _createServiceUtil(entity, _SESSION_TYPE_REMOTE);

                        _createServiceClp(entity, _SESSION_TYPE_REMOTE);
                        _createServiceClpInvoker(entity, _SESSION_TYPE_REMOTE);
                        _createServiceWrapper(entity, _SESSION_TYPE_REMOTE);

                        if (Validator.isNotNull(_remotingFileName)) {
                            _createServiceHttp(entity);
                        }

                        _createServiceJson(entity);

                        if (entity.hasColumns()) {
                            _createServiceJsonSerializer(entity);
                        }

                        _createServiceSoap(entity);
                    } else {
                        _removeServiceImpl(entity, _SESSION_TYPE_REMOTE);
                        _removeServiceBaseImpl(entity, _SESSION_TYPE_REMOTE);
                        _removeService(entity, _SESSION_TYPE_REMOTE);
                        _removeServiceUtil(entity, _SESSION_TYPE_REMOTE);

                        _removeServiceClp(entity, _SESSION_TYPE_REMOTE);
                        _removeServiceClpInvoker(entity, _SESSION_TYPE_REMOTE);
                        _removeServiceWrapper(entity, _SESSION_TYPE_REMOTE);

                        if (Validator.isNotNull(_remotingFileName)) {
                            _removeServiceHttp(entity);
                        }

                        _removeServiceSoap(entity);
                    }
                } else {
                    if (entity.hasColumns()) {
                        entity.setTransients(_getTransients(entity, false));
                        entity.setParentTransients(_getTransients(entity, true));
                    }
                }
            }

            _createHbmXml();
            _createModelHintsXml();
            _createSpringXml();

            _createExceptions(exceptionList);

            _createServiceClpMessageListener();
            _createServiceClpSerializer(exceptionList);
            _createServicePropsUtil();

            if (Validator.isNotNull(_remotingFileName)) {
                _createRemotingXml();
            }

            _createSQLIndexes();
            _createSQLTables();
            _createSQLSequences();

            _createProps();

            _deleteOrmXml();
            _deleteSpringLegacyXml();
        }
    } catch (FileNotFoundException fnfe) {
        System.out.println(fnfe.getMessage());
    }
}

From source file:com.liferay.portal.tools.service.builder.ServiceBuilder.java

License:Open Source License

private static Document _getContentDocument(String fileName) throws Exception {

    SAXReader saxReader = _getSAXReader();

    Document document = saxReader.read(new File(fileName));

    Element rootElement = document.getRootElement();

    List<Element> elements = rootElement.elements();

    for (Element element : elements) {
        String elementName = element.getName();

        if (!elementName.equals("service-builder-import")) {
            continue;
        }//from   w w w  .  ja  v a  2s. c  o m

        element.detach();

        String dirName = fileName.substring(0, fileName.lastIndexOf(StringPool.SLASH) + 1);
        String serviceBuilderImportFileName = element.attributeValue("file");

        Document serviceBuilderImportDocument = _getContentDocument(dirName + serviceBuilderImportFileName);

        Element serviceBuilderImportRootElement = serviceBuilderImportDocument.getRootElement();

        List<Element> serviceBuilderImportElements = serviceBuilderImportRootElement.elements();

        for (Element serviceBuilderImportElement : serviceBuilderImportElements) {

            serviceBuilderImportElement.detach();

            rootElement.add(serviceBuilderImportElement);
        }
    }

    return document;
}

From source file:com.liferay.portal.tools.service.builder.ServiceBuilder.java

License:Open Source License

private static void _readResourceActionModels(String implDir, InputStream inputStream,
        Set<String> resourceActionModels) throws Exception {

    SAXReader saxReader = _getSAXReader();

    Document document = saxReader.read(inputStream);

    Element rootElement = document.getRootElement();

    List<Element> resourceElements = rootElement.elements("resource");

    for (Element resourceElement : resourceElements) {
        resourceActionModels.addAll(/*from   w w  w  .  j  ava 2 s.c o m*/
                readResourceActionModels(implDir, new String[] { resourceElement.attributeValue("file") }));
    }

    XPath xPath = document.createXPath("//model-resource/model-name");

    List<Element> elements = xPath.selectNodes(rootElement);

    for (Element element : elements) {
        resourceActionModels.add(element.getText().trim());
    }
}