[jbpm-commits] JBoss JBPM SVN: r6798 - in projects/migration_tool/trunk/src: main/java/org/jbpm/migration/util and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Nov 6 23:40:32 EDT 2010


Author: MohReece
Date: 2010-11-06 23:40:32 -0400 (Sat, 06 Nov 2010)
New Revision: 6798

Modified:
   projects/migration_tool/trunk/src/main/java/org/jbpm/migration/JpdlValidator.java
   projects/migration_tool/trunk/src/main/java/org/jbpm/migration/util/XmlUtils.java
   projects/migration_tool/trunk/src/test/java/org/jbpm/migration/JpdlValidatorTest.java
Log:
Fixed concatenation of the input XML files (simply added a common root element).

Modified: projects/migration_tool/trunk/src/main/java/org/jbpm/migration/JpdlValidator.java
===================================================================
--- projects/migration_tool/trunk/src/main/java/org/jbpm/migration/JpdlValidator.java	2010-11-04 11:40:47 UTC (rev 6797)
+++ projects/migration_tool/trunk/src/main/java/org/jbpm/migration/JpdlValidator.java	2010-11-07 03:40:32 UTC (rev 6798)
@@ -43,6 +43,9 @@
     /* XML Schema file for jPDL version 3.2 on the classpath. */
     private static final String JPDL_3_2_SCHEMA = "Schemas/jPDL/jpdl-3.2.xsd";
 
+    /** Tag name for the root node (document element) of the concatenated document. */
+    private static final String CONCATENATED_ROOT_NODE = "concatenated-root";
+
     /** Logging facility. */
     private static final Logger LOGGER = Logger.getLogger(JpdlValidator.class);
 
@@ -52,8 +55,6 @@
 
     /**
      * Parse and validate a given jDPL/GPD process definition against the applicable schema.
-     * <p>
-     * TODO: Correct the concatenation process, throws a DOMException like this.
      * 
      * @param jpdl
      *            The process definition.
@@ -63,15 +64,19 @@
      *         not successful.
      */
     public static Document validateDefinition(File jpdl, File gpd) {
-        Document jpdlDoc = validateDefinition(jpdl);
+        Document jpdlDoc = validateProcess(jpdl);
         Document gpdDoc = validatePositioning(gpd);
 
         Document concatenated = null;
         if (jpdlDoc != null && gpdDoc != null) {
             try {
                 concatenated = XmlUtils.createEmptyDocument();
-                concatenated.appendChild(jpdlDoc);
-                concatenated.appendChild(gpdDoc);
+                Node rootNode = concatenated.createElement(CONCATENATED_ROOT_NODE);
+                concatenated.appendChild(rootNode);
+                Node jpdlNode = concatenated.importNode(jpdlDoc.getDocumentElement(), true);
+                rootNode.appendChild(jpdlNode);
+                Node gpdNode = concatenated.importNode(gpdDoc.getDocumentElement(), true);
+                rootNode.appendChild(gpdNode);
             } catch (Exception ex) {
                 LOGGER.error("Problem concatenating the jDPL and GPD definitions.", ex);
             }
@@ -79,7 +84,7 @@
         return concatenated;
     }
 
-    private static Document validateDefinition(File jpdl) {
+    private static Document validateProcess(File jpdl) {
         // Parse the jDPL definition into a DOM tree.
         Document document = XmlUtils.parseFile(jpdl);
         if (document == null) {

Modified: projects/migration_tool/trunk/src/main/java/org/jbpm/migration/util/XmlUtils.java
===================================================================
--- projects/migration_tool/trunk/src/main/java/org/jbpm/migration/util/XmlUtils.java	2010-11-04 11:40:47 UTC (rev 6797)
+++ projects/migration_tool/trunk/src/main/java/org/jbpm/migration/util/XmlUtils.java	2010-11-07 03:40:32 UTC (rev 6798)
@@ -38,6 +38,7 @@
 
 import org.apache.log4j.Logger;
 import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 import org.xml.sax.SAXParseException;
 
 /**
@@ -165,13 +166,13 @@
     }
 
     /**
-     * Format an XML document to a pretty-printable <code>String</code>.
+     * Format an XML document (fragment) to a pretty-printable <code>String</code>.
      * 
      * @param input
-     *            The input XML document.
+     *            The uppermost node of the input XML document (fragment).
      * @return The formatted <code>String</code>.
      */
-    public static String format(Document input) {
+    public static String format(Node input) {
         StreamResult result = null;
         try {
             Transformer transformer = TransformerFactory.newInstance().newTransformer();

Modified: projects/migration_tool/trunk/src/test/java/org/jbpm/migration/JpdlValidatorTest.java
===================================================================
--- projects/migration_tool/trunk/src/test/java/org/jbpm/migration/JpdlValidatorTest.java	2010-11-04 11:40:47 UTC (rev 6797)
+++ projects/migration_tool/trunk/src/test/java/org/jbpm/migration/JpdlValidatorTest.java	2010-11-07 03:40:32 UTC (rev 6798)
@@ -51,9 +51,7 @@
     public void validDefinition() throws Exception {
         File jpdl = new File("src/test/resources/jpdl3/singleNode/processdefinition.xml");
         File gpd = new File("src/test/resources/jpdl3/singleNode/gpd.xml");
-        
-        // TODO: fix this part.
-//        Document document = JpdlValidator.validateDefinition(jpdl, gpd);
-//        assertThat(document, is(notNullValue()));
+        Document document = JpdlValidator.validateDefinition(jpdl, gpd);
+        assertThat(document, is(notNullValue()));
     }
 }



More information about the jbpm-commits mailing list