[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