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.glaf.dts.util.XmlReader.java

License:Apache License

public DataTransfer read(java.io.InputStream inputStream) {
    DataTransfer tableModel = new DataTransfer();
    SAXReader xmlReader = new SAXReader();
    try {/*from   w  w  w. j av  a2  s  . c  o m*/
        Document doc = xmlReader.read(inputStream);
        Element root = doc.getRootElement();
        Element element = root.element("entity");
        if (element != null) {
            List<?> attrs = element.attributes();
            if (attrs != null && !attrs.isEmpty()) {
                Map<String, Object> dataMap = new java.util.HashMap<String, Object>();
                Iterator<?> iter = attrs.iterator();
                while (iter.hasNext()) {
                    Attribute attr = (Attribute) iter.next();
                    dataMap.put(attr.getName(), attr.getStringValue());
                    tableModel.addProperty(attr.getName(), attr.getStringValue());
                }
                Tools.populate(tableModel, dataMap);
            }

            tableModel.setEntityName(element.attributeValue("name"));
            tableModel.setPrimaryKey(element.attributeValue("primaryKey"));
            tableModel.setTableName(element.attributeValue("table"));
            tableModel.setTitle(element.attributeValue("title"));
            tableModel.setStopWord(element.attributeValue("stopWord"));
            tableModel.setPackageName(element.attributeValue("package"));
            tableModel.setEnglishTitle(element.attributeValue("englishTitle"));
            tableModel.setFilePrefix(element.attributeValue("filePrefix"));
            tableModel.setParseType(element.attributeValue("parseType"));
            tableModel.setParseClass(element.attributeValue("parseClass"));
            tableModel.setAggregationKeys(element.attributeValue("aggregationKeys"));
            tableModel.setSplit(element.attributeValue("split"));
            if (StringUtils.equals(element.attributeValue("insertOnly"), "true")) {
                tableModel.setInsertOnly("true");
            }

            String startRow = element.attributeValue("startRow");
            if (StringUtils.isNotEmpty(startRow) && StringUtils.isNumeric(startRow)) {
                tableModel.setStartRow(Integer.parseInt(startRow));
            }

            String stopSkipRow = element.attributeValue("stopSkipRow");
            if (StringUtils.isNotEmpty(stopSkipRow) && StringUtils.isNumeric(stopSkipRow)) {
                tableModel.setStopSkipRow(Integer.parseInt(stopSkipRow));
            }

            String batchSize = element.attributeValue("batchSize");
            if (StringUtils.isNotEmpty(batchSize) && StringUtils.isNumeric(batchSize)) {
                tableModel.setBatchSize(Integer.parseInt(batchSize));
            }

            List<?> excludes = element.elements("excludes");
            if (excludes != null && excludes.size() > 0) {
                Iterator<?> iterator = excludes.iterator();
                while (iterator.hasNext()) {
                    Element elem = (Element) iterator.next();
                    tableModel.addExclude(elem.getStringValue());
                }
            }

            List<?> rows = element.elements("property");
            if (rows != null && rows.size() > 0) {
                Iterator<?> iterator = rows.iterator();
                while (iterator.hasNext()) {
                    Element elem = (Element) iterator.next();
                    ColumnDefinition field = new ColumnDefinition();
                    this.readField(elem, field);
                    tableModel.addColumn(field);
                    if (StringUtils.equalsIgnoreCase(tableModel.getPrimaryKey(), field.getColumnName())) {
                        tableModel.setIdColumn(field);
                    }
                }
            }
        }

    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }

    return tableModel;
}

From source file:com.glaf.jbpm.config.JbpmExtensionReader.java

License:Apache License

public List<Extension> readTasks(java.io.InputStream inputStream) {
    List<Extension> extensions = new java.util.ArrayList<Extension>();
    SAXReader xmlReader = new SAXReader();
    try {/*from   w w  w. j a va2  s .c om*/
        Document doc = xmlReader.read(inputStream);
        Element root = doc.getRootElement();
        String x_type = root.attributeValue("type");
        List<?> rows = root.elements("taskmgr");
        Iterator<?> iterator = rows.iterator();
        while (iterator.hasNext()) {
            Element element = (Element) iterator.next();
            Extension extension = new Extension();
            extension.setProcessName(element.attributeValue("processName"));
            extension.setTaskName(element.attributeValue("taskName"));
            extension.setType(x_type);
            if (element.elementTextTrim("taskMgmtType") != null) {
                ExtensionField extensionField = new ExtensionField();
                extensionField.setName("taskMgmtType");
                extensionField.setValue(element.elementTextTrim("taskMgmtType"));
                extension.addField(extensionField);
            }
            Element propertiesE = element.element("properties");
            if (propertiesE != null) {
                List<?> properties = propertiesE.elements("property");
                Iterator<?> iter = properties.iterator();
                while (iter.hasNext()) {
                    Element elem = (Element) iter.next();
                    String propertyName = elem.attributeValue("key");
                    String propertyValue = null;
                    if (elem.attribute("value") != null) {
                        propertyValue = elem.attributeValue("value");
                    } else {
                        propertyValue = elem.getTextTrim();
                    }
                    if (StringUtils.isNotEmpty(propertyName) && StringUtils.isNotEmpty(propertyValue)) {
                        ExtensionField extensionField = new ExtensionField();
                        extensionField.setName(propertyName.trim());
                        extensionField.setValue(propertyValue.trim());
                        extension.addField(extensionField);
                    }
                }
            }
            if (element.elementText("handlers") != null) {
                ExtensionField extensionField = new ExtensionField();
                extensionField.setName("handlers");
                extensionField.setValue(element.elementTextTrim("handlers"));
                extension.addField(extensionField);
            }
            extensions.add(extension);
        }

    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    return extensions;
}

From source file:com.glaf.jbpm.config.JbpmExtensionReader.java

License:Apache License

public List<Extension> readActions(java.io.InputStream inputStream) {
    List<Extension> extensions = new java.util.ArrayList<Extension>();
    SAXReader xmlReader = new SAXReader();
    try {/*from   w  ww . java  2 s.  c  o  m*/
        Document doc = xmlReader.read(inputStream);
        Element root = doc.getRootElement();
        String x_type = root.attributeValue("type");
        List<?> actions = root.elements("action");
        Iterator<?> iter = actions.iterator();
        while (iter.hasNext()) {
            Element element = (Element) iter.next();
            Extension extension = new Extension();
            extension.setProcessName(element.attributeValue("processName"));
            extension.setTaskName(element.attributeValue("taskName"));
            extension.setName(element.attributeValue("name"));
            extension.setType(x_type);
            extension.setDescription(element.elementTextTrim("description"));
            Iterator<?> it99 = element.elementIterator();
            while (it99.hasNext()) {
                Element elem = (Element) it99.next();
                String propertyName = elem.getName();
                String propertyValue = elem.getTextTrim();
                if (StringUtils.isNotEmpty(propertyValue)) {
                    ExtensionField extensionField = new ExtensionField();
                    extensionField.setName(propertyName.trim());
                    extensionField.setValue(propertyValue.trim());
                    extension.addField(extensionField);
                }
            }
            if (element.elementText("sql") != null) {
                ExtensionField extensionField = new ExtensionField();
                extensionField.setName("sql");
                extensionField.setValue(element.elementTextTrim("sql"));
                extension.addField(extensionField);

            }
            if (element.elementText("handlers") != null) {
                ExtensionField extensionField = new ExtensionField();
                extensionField.setName("handlers");
                extensionField.setValue(element.elementTextTrim("handlers"));
                extension.addField(extensionField);
            }

            Element parametersE = element.element("parameters");
            if (parametersE != null) {
                List<?> parameters = parametersE.elements("parameter");
                Iterator<?> it = parameters.iterator();
                while (it.hasNext()) {
                    Element elem = (Element) it.next();
                    String propertyName = elem.attributeValue("name");
                    String type = elem.attributeValue("type");
                    String propertyValue = null;
                    if (elem.attribute("value") != null) {
                        propertyValue = elem.attributeValue("value");
                    } else {
                        propertyValue = elem.getTextTrim();
                    }
                    if (StringUtils.isNotEmpty(propertyName) && StringUtils.isNotEmpty(propertyValue)) {
                        ExtensionParam extensionParam = new ExtensionParam();
                        extensionParam.setName(propertyName.trim());
                        extensionParam.setValue(propertyValue.trim());
                        extensionParam.setType(type);
                        extension.addParam(extensionParam);
                    }
                }
            }

            extensions.add(extension);
        }
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    return extensions;
}

From source file:com.glaf.jbpm.deploy.MxJbpmProcessDeployer.java

License:Apache License

public ProcessDefinition deploy(JbpmContext jbpmContext, byte[] zipBytes) {
    SAXReader xmlReader = new SAXReader();
    JpdlXmlReader jpdlReader = new JpdlXmlReader();
    Document doc = null;//from   w w w. j a  va2s.  co m
    InputStream inputStream = null;
    ZipInputStream zipInputStream = null;
    ProcessDefinition processDefinition = null;
    Map<String, byte[]> zipMap = null;
    try {
        zipInputStream = new ZipInputStream(new ByteArrayInputStream(zipBytes));
        zipMap = ZipUtils.getZipBytesMap(zipInputStream);
        zipInputStream.close();
        zipInputStream = null;
        if (zipMap != null) {
            if (zipMap.get("processdefinition.xml") != null) {
                byte[] bytes = zipMap.get("processdefinition.xml");
                inputStream = new ByteArrayInputStream(bytes);
                doc = xmlReader.read(inputStream);
                jpdlReader.checkTaskNames(doc);
                this.reconfigProcessDefinition(jbpmContext, doc);
                Element root = doc.getRootElement();
                String encoding = doc.getXMLEncoding();
                String processName = root.attributeValue("name");

                try {
                    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());
                    String ret = formatter.format(new Date());
                    String filename = SystemProperties.getConfigRootPath() + "/deploy/" + processName + ret
                            + ".zip";
                    // ?
                    FileUtils.save(filename, zipBytes);
                } catch (Exception ex) {
                    if (LogUtils.isDebug()) {
                        logger.debug(ex);
                        ex.printStackTrace();
                    }
                }

                byte[] pdBytes = Dom4jUtils.getBytesFromPrettyDocument(doc, encoding);
                zipMap.put("processdefinition.xml", pdBytes);

                // ??
                byte[] newZipBytes = ZipUtils.toZipBytes(zipMap);
                zipInputStream = new ZipInputStream(new ByteArrayInputStream(newZipBytes));
                processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
                jbpmContext.deployProcessDefinition(processDefinition);
                zipInputStream.close();
                zipInputStream = null;

                String processDefinitionId = String.valueOf(processDefinition.getId());

                logger.debug("processDefinitionId:" + processDefinitionId);
                logger.debug("processName:" + processName);
                Map<String, Task> taskMap = processDefinition.getTaskMgmtDefinition().getTasks();
                if (taskMap != null && taskMap.size() > 0) {
                    Iterator<String> iter = taskMap.keySet().iterator();
                    while (iter.hasNext()) {
                        String taskName = iter.next();
                        logger.debug("taskName:" + taskName);
                    }
                }

                try {
                    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());
                    String ret = formatter.format(new Date());
                    String filename = SystemProperties.getConfigRootPath() + "/deploy/" + processName + ret
                            + "_repack.zip";
                    // ??
                    FileUtils.save(filename, newZipBytes);
                } catch (Exception ex) {
                    if (LogUtils.isDebug()) {
                        logger.debug(ex);
                    }
                }
            }

            if (zipMap.get("process.cfg.xml") != null) {
                byte[] x_bytes = zipMap.get("process.cfg.xml");
                if (x_bytes != null) {
                    JbpmExtensionReader reader = new JbpmExtensionReader();
                    List<Extension> extensions = reader.readTasks(new ByteArrayInputStream(x_bytes));
                    if (extensions != null && extensions.size() > 0) {

                        JbpmExtensionManager jbpmExtensionManager = ProcessContainer.getContainer()
                                .getJbpmExtensionManager();
                        jbpmExtensionManager.reconfig(jbpmContext, extensions);
                    }
                }
            }
        }
        return processDefinition;
    } catch (Throwable ex) {
        if (LogUtils.isDebug()) {
            logger.debug(ex);
            ex.printStackTrace();
        }
        throw new JbpmException(ex);
    } finally {
        try {
            if (zipInputStream != null) {
                zipInputStream.close();
                zipInputStream = null;
            }
        } catch (Exception ex) {
            if (LogUtils.isDebug()) {
                logger.debug(ex);
            }
        }
        try {
            if (inputStream != null) {
                inputStream.close();
                inputStream = null;
            }
        } catch (Exception ex) {
            if (LogUtils.isDebug()) {
                logger.debug(ex);
            }
        }
    }
}

From source file:com.glaf.jbpm.export.MxJbpmProcessExporter.java

License:Apache License

public void addElement(Document doc, Map<String, Object> context) {
    Element root = doc.getRootElement();
    GraphSession graphSession = null;/*from  ww  w. j  a  v a2  s  .c  o  m*/
    JbpmContext jbpmContext = null;
    try {
        jbpmContext = ProcessContainer.getContainer().createJbpmContext();
        graphSession = jbpmContext.getGraphSession();
        List<ProcessDefinition> processDefinitions = graphSession.findLatestProcessDefinitions();
        if (processDefinitions != null && processDefinitions.size() > 0) {
            Element element = root.addElement("processes");
            Iterator<ProcessDefinition> iterator = processDefinitions.iterator();
            while (iterator.hasNext()) {
                ProcessDefinition pd = iterator.next();
                Element elem = element.addElement("process");
                elem.addAttribute("name", pd.getName());
                elem.addAttribute("description", pd.getDescription());
            }
        }
    } catch (Exception ex) {
        if (LogUtils.isDebug()) {
            ex.printStackTrace();
        }
    } finally {
        Context.close(jbpmContext);
    }

    Element jbpmCfgTemplate = root.addElement("jbpm-cfg-template");

    String configPath = SystemProperties.getConfigRootPath();
    String path = configPath + "/conf/jbpm/template";
    java.io.File directory = new java.io.File(path);
    String[] filelist = directory.list();
    InputStream inputStream = null;
    SAXReader xmlReader = new SAXReader();
    for (int i = 0; i < filelist.length; i++) {
        String filename = directory.getAbsolutePath() + "/" + filelist[i];
        File file = new File(filename);
        if (file.isFile() && file.getName().endsWith(".xml")) {
            try {
                inputStream = new FileInputStream(file);
                Document doc2x = xmlReader.read(inputStream);
                Element root2x = doc2x.getRootElement();
                List<?> elements = root2x.elements("action-definition");
                Iterator<?> iterator = elements.iterator();
                while (iterator.hasNext()) {
                    Element elem = (Element) iterator.next();
                    elem.setParent(jbpmCfgTemplate);
                    elem.setDocument(doc);
                    jbpmCfgTemplate.add(elem);
                }
                inputStream.close();
                inputStream = null;
            } catch (Exception ex) {
                throw new RuntimeException(ex);
            }
        }
    }
}

From source file:com.glaf.jbpm.xml.JpdlXmlReader.java

License:Apache License

public List<String> getTaskNames(InputStream inputStream) {
    List<String> taskNames = new ArrayList<String>();
    SAXReader xmlReader = new SAXReader();
    Document doc = null;//from   w  ww .j  a  v a 2 s .c o m
    try {
        doc = xmlReader.read(inputStream);
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    Element root = doc.getRootElement();
    List<?> rows = root.elements("task-node");
    Iterator<?> iterator = rows.iterator();
    while (iterator.hasNext()) {
        Element element = (Element) iterator.next();
        List<?> tasks = element.elements("task");
        Iterator<?> iter = tasks.iterator();
        while (iter.hasNext()) {
            Element elem = (Element) iter.next();
            String taskName = elem.attributeValue("name");
            if (taskNames.contains(taskName)) {
                throw new RuntimeException("task name '" + taskName + "' is exists.");
            }
            taskNames.add(taskName);
        }
    }

    return taskNames;
}

From source file:com.glaf.jbpm.xml.JpdlXmlReader.java

License:Apache License

public List<Todo> read(InputStream inputStream) {
    List<Todo> todoList = new java.util.ArrayList<Todo>();
    SAXReader xmlReader = new SAXReader();
    int sortNo = 1;
    try {//from  w  w w .  ja va 2 s  . c  o  m
        Document doc = xmlReader.read(inputStream);
        Element root = doc.getRootElement();
        String processName = root.attributeValue("name");
        String moduleName = root.elementText("description");
        List<?> rows = root.elements("task-node");
        Iterator<?> iterator = rows.iterator();
        while (iterator.hasNext()) {
            Element element = (Element) iterator.next();
            List<?> tasks = element.elements("task");
            Iterator<?> iter = tasks.iterator();
            while (iter.hasNext()) {
                Element elem = (Element) iter.next();
                String taskName = elem.attributeValue("name");
                if (taskName.startsWith("task55")) {
                    continue;
                }
                Todo model = new Todo();
                model.setSortNo(sortNo++);
                model.setProcessName(processName);
                model.setModuleName(moduleName);
                model.setTitle(moduleName + " " + elem.attributeValue("description") + "??");
                model.setContent(moduleName + " " + elem.attributeValue("description") + "??");
                model.setCode(processName + "_" + taskName);
                model.setTaskName(taskName);
                model.setProvider("jbpm");
                model.setLinkType(processName + "_" + taskName);
                String detail_url = conf.get("jbpm_task_detail_url");
                String list_url = conf.get("jbpm_task_url");
                model.setLink(detail_url + "&rowId=#{rowId}&x_method=view&app_name=" + processName);
                model.setListLink(list_url + "&taskType=running&app_name=" + processName);
                model.setLimitDay(2);
                model.setXa(6);
                model.setXb(6);
                todoList.add(model);
            }
        }
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    return todoList;
}

From source file:com.glaf.mail.MxMailHelper.java

License:Apache License

public Map<String, String> getAttributes(String attribute) {
    Map<String, String> dataMap = new java.util.HashMap<String, String>();
    StringReader stringReader = new StringReader(attribute);
    SAXReader xmlReader = new SAXReader();
    try {/*from   w w  w  .j av  a  2 s .  co  m*/
        Document doc = xmlReader.read(stringReader);
        Element root = doc.getRootElement();
        List<?> elements = root.elements("element");
        if (elements != null && elements.size() > 0) {
            Iterator<?> iterator = elements.iterator();
            while (iterator.hasNext()) {
                Element element = (Element) iterator.next();
                String name = element.attributeValue("name");
                String value = element.attributeValue("value");
                if (StringUtils.isEmpty(value)) {
                    value = element.getStringValue();
                }
                dataMap.put(name, value);
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return dataMap;
}

From source file:com.glaf.mail.xml.MailXmlReader.java

License:Apache License

public List<MailTemplate> read(java.io.InputStream inputStream) {
    List<MailTemplate> mailTemplates = new java.util.ArrayList<MailTemplate>();
    SAXReader xmlReader = new SAXReader();
    Document doc = null;/*from w  w w . j a  va  2s .c om*/
    try {
        doc = xmlReader.read(inputStream);
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    Element root = doc.getRootElement();
    List<?> rows = root.elements();
    Iterator<?> iterator = rows.iterator();
    while (iterator.hasNext()) {
        Element element = (Element) iterator.next();
        String mailId = element.attributeValue("id");
        String title = element.attributeValue("title");
        String templateId = element.elementText("templateId");
        String templatePath = element.elementText("templatePath");

        MailTemplate mt = new MailTemplate();
        mt.setTitle(title);
        mt.setMailDefId(mailId);
        mt.setTemplateId(templateId);
        mt.setTemplatePath(templatePath);
        mt.setProperties(this.readProperties(element));
        mt.setContent(element.elementText("content"));
        mt.setDescription(element.elementText("description"));

        List<?> datasets = element.elements("dataset");
        Iterator<?> iter = datasets.iterator();
        while (iter.hasNext()) {
            Element elem = (Element) iter.next();
            MailDataSet mailDS = new MailDataSet();
            mailDS.setProperties(this.readProperties(elem));

            List<?> rowsets = elem.elements("rowset");
            Iterator<?> it = rowsets.iterator();
            while (it.hasNext()) {
                Element em = (Element) it.next();
                MailRowSet rs = new MailRowSet();
                rs.setQuery(em.elementTextTrim("query"));
                rs.setMapping(em.attributeValue("mapping"));
                rs.setMailMgr(em.attributeValue("mailMgr"));
                rs.setMailMgrClassName(em.attributeValue("mailMgrClassName"));
                rs.setMailMgrMapping(em.attributeValue("mailMgrMapping"));
                rs.setDataMgr(em.attributeValue("dataMgr"));
                rs.setDataMgrBeanId(em.attributeValue("dataMgrBeanId"));
                rs.setDataMgrClassName(em.attributeValue("dataMgrClassName"));
                rs.setProperties(this.readProperties(em));
                String singleResult = em.attributeValue("singleResult");
                if ("true".equals(singleResult)) {
                    rs.setSingleResult(true);
                }
                mailDS.addRowSet(rs);
            }

            mt.addDataSet(mailDS);
        }
        mailTemplates.add(mt);
    }

    return mailTemplates;
}

From source file:com.glaf.report.xml.ReportDefinitionReader.java

License:Apache License

public List<ReportDefinition> read(java.io.InputStream inputStream) {
    List<ReportDefinition> reports = new java.util.ArrayList<ReportDefinition>();
    SAXReader xmlReader = new SAXReader();
    Document doc = null;//from  w ww  .  j a  v a  2 s.  c  om
    try {
        doc = xmlReader.read(inputStream);
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    Element root = doc.getRootElement();
    List<?> rows = root.elements();
    Iterator<?> iterator = rows.iterator();
    while (iterator.hasNext()) {
        Element element = (Element) iterator.next();
        String reportId = element.attributeValue("id");
        String templateId = element.elementText("templateId");
        String templateFile = element.elementText("templateFile");

        ReportDefinition rdf = new ReportDefinition();
        rdf.setReportId(reportId);
        rdf.setTemplateId(templateId);
        rdf.setTemplateFile(templateFile);
        rdf.setProperties(this.readProperties(element));

        List<?> datasets = element.elements("dataset");
        Iterator<?> iter = datasets.iterator();
        while (iter.hasNext()) {
            Element elem = (Element) iter.next();
            ReportDataSet rds = new ReportDataSet();
            rds.setDatasourceName(elem.attributeValue("datasourceName"));
            rds.setProperties(this.readProperties(elem));

            List<?> rowsets = elem.elements("rowset");
            Iterator<?> it = rowsets.iterator();
            while (it.hasNext()) {
                Element em = (Element) it.next();
                ReportRowSet rs = new ReportRowSet();
                rs.setQuery(em.elementTextTrim("query"));
                rs.setMapping(em.attributeValue("mapping"));
                rs.setRptMgr(em.attributeValue("rptMgr"));
                rs.setRptMgrClassName(em.attributeValue("rptMgrClassName"));
                rs.setRptMgrMapping(em.attributeValue("rptMgrMapping"));
                rs.setDataMgr(em.attributeValue("dataMgr"));
                rs.setDataMgrBeanId(em.attributeValue("dataMgrBeanId"));
                rs.setDataMgrClassName(em.attributeValue("dataMgrClassName"));
                rs.setProperties(this.readProperties(em));
                String singleResult = em.attributeValue("singleResult");
                if ("true".equals(singleResult)) {
                    rs.setSingleResult(true);
                }
                rds.addRowSet(rs);
            }

            rdf.addDataSet(rds);
        }
        reports.add(rdf);
    }

    return reports;
}