[jboss-svn-commits] JBL Code SVN: r28156 - in labs/jbossrules/trunk/drools-process/drools-jpdl/src: main/java/org/drools/jpdl/core/node and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 17 16:55:08 EDT 2009


Author: salaboy21
Date: 2009-07-17 16:55:07 -0400 (Fri, 17 Jul 2009)
New Revision: 28156

Added:
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/EpdlWriter.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/gpd.xml
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/processdefinition.xml
Modified:
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/MailNode.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SysoutHandler.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2/processdefinition.xml
Log:
EpdlWriter + simple2state example, using state nodes + change the jBPM jar version from 3.3.0 to 3.2.6.SP1, the last stable version of 3.x

Added: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/EpdlWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/EpdlWriter.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/EpdlWriter.java	2009-07-17 20:55:07 UTC (rev 28156)
@@ -0,0 +1,112 @@
+/*
+ *  Copyright 2009 salaboy.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.drools.jpdl;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.drools.definition.process.Connection;
+import org.drools.definition.process.Node;
+import org.drools.jpdl.core.JpdlProcess;
+
+import org.drools.workflow.core.impl.NodeImpl;
+import org.jbpm.graph.def.Action;
+import org.jbpm.instantiation.Delegation;
+
+/**
+ *
+ * @author salaboy
+ */
+public class EpdlWriter {
+
+    public static void write(JpdlProcess process) {
+        Node[] nodes = process.getNodes();
+        int id = 0;
+
+        System.out.println("<process xmlns=\"http://drools.org/drools-5.0/process\""+
+                " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\" "+
+                "xs:schemaLocation=\"http://drools.org/drools-5.0/process drools-processes-5.0.xsd\" " +
+                "type=\"RuleFlow\" name=\"flow\" id=\""+process.getName()+"\" package-name=\"org.drools.examples\" >");
+        System.out.println("<header>");
+        System.out.println("</header>");
+        System.out.println("<nodes>");
+        for(Node node : nodes){
+            //System.out.println("Node Type: "+node.getClass()+" - Name"+node.getName());
+            if(node instanceof org.drools.jpdl.core.node.StartState){
+                System.out.println("<start id=\""+node.getId()+"\" name=\""+node.getName()+"\" />");
+            }
+            else if(node instanceof org.drools.jpdl.core.node.Fork){
+                System.out.println("<split id=\""+node.getId()+"\" name=\""+node.getName()+"\" type=\"1\" />");
+            }
+            else if(node instanceof org.drools.jpdl.core.node.Join){
+                System.out.println("<join id=\""+node.getId()+"\" name=\""+node.getName()+"\" type=\"1\" />");
+            }
+            else if(node instanceof org.drools.jpdl.core.node.State){
+                System.out.println("<state id=\""+node.getId()+"\" name=\""+node.getName()+"\" >");
+                System.out.println("    <constraints>");
+                for (Connection connection: node.getOutgoingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE)) {
+                    System.out.println("        <constraint toNodeId=\""+connection.getTo().getId()+"\" name=\"signalTo"+connection.getTo().getName()+"\" />");
+                }
+                System.out.println("    </constraints>");
+                System.out.println("</state>");
+
+            }
+            else if(node instanceof org.drools.jpdl.core.node.EndState){
+                System.out.println("<end id=\""+node.getId()+"\" name=\""+node.getName()+"\" />");
+            }
+            else if(node instanceof org.drools.jpdl.core.node.JpdlNode){
+                System.out.println("<actionNode id=\""+node.getId()+"\" name=\""+node.getName()+"\">");
+                System.out.println("    <action type=\"expression\" dialect=\"java\" >");
+                Action action = ((org.drools.jpdl.core.node.JpdlNode)node).getAction();
+                if(action != null){
+                    Delegation delegation = action.getActionDelegation();
+                    if(delegation != null){
+                       // System.out.println("Introspect = "+delegation.getClassName());
+                       // System.out.println("replaced"+delegation.getClassName().replace(".","/"));
+                       // Resource resource = ResourceFactory.newInputStreamResource(EpdlWriter.class.getResourceAsStream(delegation.getClassName().replace(".","/")));
+                       // System.out.println(""+resource);
+                       //  System.out.println("Paste the content of the execute() method of the class"+delegation.getClassName());
+                    }
+                }
+                System.out.println("    </action>");
+                System.out.println("</actionNode>");
+            }
+            
+        }
+        System.out.println("</nodes>");
+
+        System.out.println("<connections>");
+        for(Node node : nodes){
+
+            Map<String, List<Connection>> outConnections = node.getOutgoingConnections();
+            Set<String> keys = outConnections.keySet();
+            for(String key : keys){
+                List<Connection> connections = outConnections.get(key);
+                for(Connection connection : connections){
+                    System.out.println("    <connection from=\""+node.getId()+"\" to=\""+connection.getTo().getId()+"\" />");
+                }
+            }
+
+        }
+         System.out.println("</connections>");
+
+         System.out.println("</process>");
+    }
+
+
+}

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/MailNode.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/MailNode.java	2009-07-17 20:09:01 UTC (rev 28155)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/MailNode.java	2009-07-17 20:55:07 UTC (rev 28156)
@@ -26,9 +26,10 @@
         this.actors = actors;
     }
     
-    public String getTo() {
-        return to;
-    }
+
+//    public String getTo() {
+//        return to;
+//    }
     
     public void setTo(String to) {
         this.to = to;

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java	2009-07-17 20:09:01 UTC (rev 28155)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java	2009-07-17 20:55:07 UTC (rev 28156)
@@ -242,9 +242,20 @@
             }
     	}
     }
-    
+        public class JpdlToken extends Token{
+
+            public JpdlToken(NodeInstance node) {
+                org.jbpm.graph.def.Node jBPMNode = new org.jbpm.graph.def.Node();
+                jBPMNode.setName(node.getNodeName());
+                this.setNode(jBPMNode);
+            }
+
+        }
 	public class JpdlExecutionContext extends ExecutionContext {
-	    public JpdlExecutionContext() {
+	    public JpdlExecutionContext(NodeInstance node) {
+	        super((Token) new JpdlToken(node));
+	    }
+             public JpdlExecutionContext() {
 	        super((Token) null);
 	    }
 	    public void leaveNode() {

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java	2009-07-17 20:09:01 UTC (rev 28155)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java	2009-07-17 20:55:07 UTC (rev 28156)
@@ -2,6 +2,7 @@
 
 import junit.framework.TestCase;
 
+import org.drools.jpdl.EpdlWriter;
 import org.drools.jpdl.JpdlParser;
 import org.drools.jpdl.core.JpdlProcess;
 import org.drools.process.core.validation.ProcessValidationError;
@@ -70,5 +71,14 @@
             return workItemId;
         }
     }
-    
+
+      public void testWriteEPDL() throws Exception {
+        JpdlParser parser = new JpdlParser();
+        JpdlProcess process = parser.loadJpdlProcess("simple2states/processdefinition.xml");
+        ProcessValidationError[] errors = parser.getErrors();
+        
+        EpdlWriter.write(process);
+        
+      }
+
 }

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SysoutHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SysoutHandler.java	2009-07-17 20:09:01 UTC (rev 28155)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SysoutHandler.java	2009-07-17 20:55:07 UTC (rev 28156)
@@ -8,7 +8,8 @@
 	private static final long serialVersionUID = 1L;
 
 	public void execute(ExecutionContext executionContext) throws Exception {
-		System.out.println("Executing");
+		//System.out.println("Executing"+executionContext.getNode().getName());
+             System.out.println("EXECUTING");
 		executionContext.leaveNode();
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2/processdefinition.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2/processdefinition.xml	2009-07-17 20:09:01 UTC (rev 28155)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2/processdefinition.xml	2009-07-17 20:55:07 UTC (rev 28156)
@@ -3,29 +3,29 @@
 <process-definition 
   xmlns="urn:jbpm.org:jpdl-3.2"
   name="simple">
-   <start-state name="start">
-		<transition to="fork1"></transition>
+   <start-state name="start">
+		<transition to="fork1"></transition>
 	</start-state>
-   <node name="node1">
-		<action name="Sysout" class="org.drools.SysoutHandler"></action>
-		<transition to="join1"></transition>
-	</node>
-
-	<fork name="fork1">
-		<transition to="node1"></transition>
-		<transition to="node2" name="to node2"></transition>
-	</fork>
-
-	<join name="join1">
-		<transition to="end"></transition>
-	</join>
-
-	<node name="node2">
+        <node name="node1">
 		<action name="Sysout" class="org.drools.SysoutHandler"></action>
-		<transition to="join1"></transition>
-	</node>
-
-
+		<transition to="join1"></transition>
+	</node>
+
+	<fork name="fork1">
+		<transition to="node1"></transition>
+		<transition to="node2" name="to node2"></transition>
+	</fork>
+
+	<join name="join1">
+		<transition to="end"></transition>
+	</join>
+
+	<node name="node2">
+		<action name="Sysout" class="org.drools.SysoutHandler"></action>
+		<transition to="join1"></transition>
+	</node>
+
+
 	<end-state name="end">
 		<event type="node-enter">
 			<action name="Sysout" class="org.drools.SysoutHandler"></action>

Added: labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/gpd.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/gpd.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/gpd.xml	2009-07-17 20:55:07 UTC (rev 28156)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<root-container height="662" name="simple" width="694">
+  <node height="40" name="start" width="140" x="150" y="25">
+    <edge>
+      <label x="5" y="-10"/>
+    </edge>
+  </node>
+  <node height="36" name="node1" width="132" x="42" y="154">
+    <edge>
+      <label x="5" y="-10"/>
+    </edge>
+  </node>
+  <node height="40" name="end" width="140" x="154" y="290"/>
+  <node height="24" name="fork1" width="252" x="95" y="100">
+    <edge>
+      <label x="5" y="-10"/>
+    </edge>
+    <edge>
+      <label x="5" y="-10"/>
+    </edge>
+  </node>
+  <node height="24" name="join1" width="252" x="99" y="223">
+    <edge>
+      <label x="5" y="-10"/>
+    </edge>
+  </node>
+  <node height="36" name="mail-node1" width="132" x="263" y="155">
+    <edge>
+      <label x="5" y="-10"/>
+    </edge>
+  </node>
+</root-container>

Added: labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/processdefinition.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/processdefinition.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/resources/simple2states/processdefinition.xml	2009-07-17 20:55:07 UTC (rev 28156)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process-definition 
+  xmlns="urn:jbpm.org:jpdl-3.2"
+  name="simple">
+   <start-state name="start">
+		<transition to="fork1"></transition>
+	</start-state>
+        <state name="first state">
+            <transition to="fork1"></transition>
+        </state>
+
+	<fork name="fork1">
+		<transition to="node1"></transition>
+		<transition to="node2" name="to node2"></transition>
+	</fork>
+        <node name="node1">
+		<action name="Sysout" class="org.drools.SysoutHandler"></action>
+		<transition to="join1"></transition>
+	</node>
+        <node name="node2">
+		<action name="Sysout" class="org.drools.SysoutHandler"></action>
+		<transition to="join1"></transition>
+	</node>
+
+	<join name="join1">
+		<transition to="last state"></transition>
+	</join>
+
+	<state name="last state">
+            <transition to="end"></transition>
+        </state>
+
+
+	<end-state name="end">
+		<event type="node-enter">
+			<action name="Sysout" class="org.drools.SysoutHandler"></action>
+		</event>
+	</end-state>
+</process-definition>
\ No newline at end of file



More information about the jboss-svn-commits mailing list