[jboss-svn-commits] JBL Code SVN: r28978 - in labs/jbossrules/trunk: drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/core and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 18 18:38:38 EDT 2009


Author: KrisVerlaenen
Date: 2009-08-18 18:38:37 -0400 (Tue, 18 Aug 2009)
New Revision: 28978

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/core/SequenceFlow.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SequenceFlowHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess3.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ExclusiveSplit.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcess.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithGraphical.xml
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-SubProcess.xml
Log:
- bpmn2 commit

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java	2009-08-18 22:38:37 UTC (rev 28978)
@@ -28,9 +28,11 @@
 import org.drools.definition.process.NodeContainer;
 import org.drools.process.instance.ProcessInstance;
 import org.drools.runtime.process.EventListener;
+import org.drools.workflow.core.impl.NodeImpl;
 import org.drools.workflow.core.node.CompositeNode;
 import org.drools.workflow.core.node.EventNode;
 import org.drools.workflow.core.node.EventNodeInterface;
+import org.drools.workflow.core.node.StartNode;
 import org.drools.workflow.instance.NodeInstance;
 import org.drools.workflow.instance.NodeInstanceContainer;
 import org.drools.workflow.instance.WorkflowProcessInstance;
@@ -96,6 +98,23 @@
 	                return;
 	            }
 	        }
+        } else {
+        	// try to search for start nodes
+        	boolean found = false;
+        	for (Node node: getCompositeNode().getNodes()) {
+        		if (node instanceof StartNode) {
+        			StartNode startNode = (StartNode) node;
+        			if (startNode.getTriggers() == null || startNode.getTriggers().isEmpty()) {
+    	                NodeInstance nodeInstance = getNodeInstance(startNode.getTo().getTo());
+    	                ((org.drools.workflow.instance.NodeInstance) nodeInstance)
+    	                	.trigger(null, NodeImpl.CONNECTION_DEFAULT_TYPE);
+    	                found = true;
+        			}
+        		}
+        	}
+        	if (found) {
+        		return;
+        	}
         }
         if (isLinkedIncomingNodeRequired()) {
 	        throw new IllegalArgumentException(

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/core/SequenceFlow.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/core/SequenceFlow.java	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/core/SequenceFlow.java	2009-08-18 22:38:37 UTC (rev 28978)
@@ -6,6 +6,9 @@
 	private String targetRef;
 	private String bendpoints;
 	private String expression;
+	private String type;
+	private String language;
+	private String name;
 	
 	public SequenceFlow(String sourceRef, String targetRef) {
 		this.sourceRef = sourceRef;
@@ -35,5 +38,29 @@
 	public void setExpression(String expression) {
 		this.expression = expression;
 	}
+
+	public String getLanguage() {
+		return language;
+	}
+
+	public void setLanguage(String language) {
+		this.language = language;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
 	
 }

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java	2009-08-18 22:38:37 UTC (rev 28978)
@@ -91,8 +91,19 @@
 				if (connection.getExpression() != null) {
 					Split split = (Split) source;
 					Constraint constraint = new ConstraintImpl();
-					constraint.setType("code");
-					constraint.setName("");
+					if (connection.getName() != null) {
+						constraint.setName(connection.getName());
+					} else {
+						constraint.setName("");
+					}
+					if (connection.getType() != null) {
+						constraint.setType(connection.getType());
+					} else {
+						constraint.setType("code");
+					}
+					if (connection.getLanguage() != null) {
+						constraint.setDialect(connection.getLanguage());
+					}
 					constraint.setConstraint(connection.getExpression());
 					split.addConstraint(
 						new ConnectionRef(target.getId(), NodeImpl.CONNECTION_DEFAULT_TYPE),

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ScriptTaskHandler.java	2009-08-18 22:38:37 UTC (rev 28978)
@@ -1,5 +1,6 @@
 package org.drools.bpmn2.xml;
 
+import org.drools.rule.builder.dialect.java.JavaDialect;
 import org.drools.workflow.core.Node;
 import org.drools.workflow.core.impl.DroolsConsequenceAction;
 import org.drools.workflow.core.node.ActionNode;
@@ -32,8 +33,8 @@
         	actionNode.setAction(action);
         }
 		String language = element.getAttribute("scriptLanguage");
-		if (language != null) {
-			action.setDialect(language);
+		if (XmlBPMNProcessDumper.JAVA_LANGUAGE.equals(language)) {
+			action.setDialect(JavaDialect.ID);
 		}
         org.w3c.dom.Node xmlNode = element.getFirstChild();
         if (xmlNode instanceof Element) {
@@ -46,7 +47,9 @@
 		writeNode("scriptTask", actionNode, xmlDump, includeMeta);
 		DroolsConsequenceAction action = (DroolsConsequenceAction) actionNode.getAction();
 		if (action != null) {
-            xmlDump.append("scriptLanguage=\"" + action.getDialect() + "\" ");
+			if (JavaDialect.ID.equals(action.getDialect())) {
+				xmlDump.append("scriptLanguage=\"" + XmlBPMNProcessDumper.JAVA_LANGUAGE + "\" ");
+			}
             if (action.getConsequence() != null) {
                 xmlDump.append(">" + EOL + 
                     "      <script>" + XmlDumper.replaceIllegalChars(action.getConsequence()) + "</script>" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SequenceFlowHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SequenceFlowHandler.java	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/SequenceFlowHandler.java	2009-08-18 22:38:37 UTC (rev 28978)
@@ -84,6 +84,20 @@
         	String nodeName = xmlNode.getNodeName();
         	if ("conditionExpression".equals(nodeName)) {
         		String expression = xmlNode.getTextContent();
+        		org.w3c.dom.Node languageNode = xmlNode.getAttributes().getNamedItem("language");
+        		if (languageNode != null) {
+        			String language = languageNode.getNodeValue();
+        			if (XmlBPMNProcessDumper.JAVA_LANGUAGE.equals(language)) {
+        				sequenceFlow.setLanguage("java");
+        			} else if (XmlBPMNProcessDumper.RULE_LANGUAGE.equals(language)) {
+        				sequenceFlow.setType("rule");
+        			}
+        		}
+        		org.w3c.dom.Node nameNode = xmlNode.getAttributes().getNamedItem("name");
+        		if (nameNode != null) {
+        			String name = nameNode.getNodeValue();
+        			sequenceFlow.setName(name);
+        		}
         		sequenceFlow.setExpression(expression);
         	}
         	xmlNode = xmlNode.getNextSibling();

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java	2009-08-18 22:38:37 UTC (rev 28978)
@@ -9,6 +9,8 @@
 import org.drools.definition.process.WorkflowProcess;
 import org.drools.process.core.context.variable.Variable;
 import org.drools.process.core.context.variable.VariableScope;
+import org.drools.rule.builder.dialect.java.JavaDialect;
+import org.drools.workflow.core.Constraint;
 import org.drools.workflow.core.node.CompositeNode;
 import org.drools.workflow.core.node.Split;
 import org.drools.xml.Handler;
@@ -16,6 +18,9 @@
 import org.drools.xml.XmlDumper;
 
 public class XmlBPMNProcessDumper {
+	
+	public static final String JAVA_LANGUAGE = "http://www.java.com/java";
+	public static final String RULE_LANGUAGE = "http://www.jboss.org/drools/rule";
     
 	public static XmlBPMNProcessDumper INSTANCE = new XmlBPMNProcessDumper();
 	
@@ -155,10 +160,22 @@
         if (connection.getFrom() instanceof Split) {
         	Split split = (Split) connection.getFrom();
         	if (split.getType() == Split.TYPE_XOR || split.getType() == Split.TYPE_OR) {
-        		String constraint = split.getConstraint(connection).getConstraint();
+        		Constraint constraint = split.getConstraint(connection);
+        		String constraintString = constraint.getConstraint();
         		xmlDump.append(">" + EOL +
-    				"      <conditionExpression>" + XmlDumper.replaceIllegalChars(constraint) + "</conditionExpression>" + EOL +
-    				"    </sequenceFlow>" + EOL);
+    				"      <conditionExpression xs:type=\"tFormalExpression\" ");
+        		if ("code".equals(constraint.getType())) {
+	        		if (JavaDialect.ID.equals(constraint.getDialect())) {
+	        			xmlDump.append(" language=\"" + JAVA_LANGUAGE + "\" ");
+	        		}
+        		} else {
+        			xmlDump.append(" language=\"" + RULE_LANGUAGE + "\" ");
+        		}
+        		if (constraint.getName() != null && constraint.getName().trim().length() > 0) {
+        			xmlDump.append("tns:name=\"" + XmlDumper.replaceIllegalChars(constraint.getName()) + "\" ");
+        		}
+        		xmlDump.append(">" + XmlDumper.replaceIllegalChars(constraintString) + "</conditionExpression>" + EOL +
+	    				"    </sequenceFlow>" + EOL);
         	} else {
             	xmlDump.append("/>" + EOL);
             }

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java	2009-08-18 22:38:37 UTC (rev 28978)
@@ -56,7 +56,7 @@
 		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
 		ksession.getWorkItemManager().registerWorkItemHandler("RegisterRequest", new SystemOutWorkItemHandler());
 		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("employee", "john");
+		params.put("employee", "john2");
 		ksession.startProcess("Evaluation", params);
 	}
 

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess.xml	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess.xml	2009-08-18 22:38:37 UTC (rev 28978)
@@ -22,7 +22,7 @@
   
     <!-- nodes -->  
     <startEvent id="_1" name="StartProcess"/>
-    <scriptTask id="_2" name="Log" scriptLanguage="java">
+    <scriptTask id="_2" name="Log">
       <script>System.out.println("Processing evaluation for employee " + employee);</script>
     </scriptTask>
     <parallelGateway id="_3" name="Diverge" gatewayDirection="diverging"/>

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess3.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess3.xml	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-EvaluationProcess3.xml	2009-08-18 22:38:37 UTC (rev 28978)
@@ -22,7 +22,7 @@
   
     <!-- nodes -->  
     <startEvent id="_1" name="StartProcess"/>
-    <scriptTask id="_2" name="Log" scriptLanguage="java">
+    <scriptTask id="_2" name="Log">
       <script>System.out.println("Processing evaluation for employee " + employee);</script>
     </scriptTask>
     <exclusiveGateway id="_3" name="Diverge" gatewayDirection="diverging"/>
@@ -30,7 +30,7 @@
       <conditionExpression>return employee == "john";</conditionExpression>
     </sequenceFlow>
     <sequenceFlow sourceRef="_3" targetRef="_5">
-      <conditionExpression>return true;</conditionExpression>
+      <conditionExpression xs:type="tFormalExpression" language="http://www.jboss.org/drools/rule">eval(true);</conditionExpression>
     </sequenceFlow>
     <task id="_4" name="RegisterRequest" tns:taskName="RegisterRequest" >
       <ioSpecification>

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ExclusiveSplit.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ExclusiveSplit.xml	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-ExclusiveSplit.xml	2009-08-18 22:38:37 UTC (rev 28978)
@@ -21,10 +21,10 @@
     <!-- nodes -->
     <startEvent id="_1" name="Start" g:x="16" g:y="56" g:width="48" g:height="48" />
     <exclusiveGateway id="_2" name="Split" g:x="96" g:y="56" g:width="49" g:height="49" gatewayDirection="diverging" />
-    <scriptTask id="_3" name="Script1" g:x="177" g:y="16" g:width="80" g:height="48" scriptLanguage="mvel" >
+    <scriptTask id="_3" name="Script1" g:x="177" g:y="16" g:width="80" g:height="48">
       <script>System.out.println("x=" + x);</script>
     </scriptTask>
-    <scriptTask id="_4" name="Script2" g:x="177" g:y="96" g:width="80" g:height="48" scriptLanguage="mvel" >
+    <scriptTask id="_4" name="Script2" g:x="177" g:y="96" g:width="80" g:height="48">
       <script>System.out.println("y=" + y);</script>
     </scriptTask>
     <exclusiveGateway id="_5" name="Join" g:x="289" g:y="56" g:width="49" g:height="49" gatewayDirection="converging" />

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcess.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcess.xml	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcess.xml	2009-08-18 22:38:37 UTC (rev 28978)
@@ -11,7 +11,7 @@
   <process id="Minimal" name="Minimal Process">
     <startEvent id="_1" name="StartProcess"/>
     <sequenceFlow sourceRef="_1" targetRef="_2"/>
-    <scriptTask id="_2" name="Hello" scriptLanguage="java">
+    <scriptTask id="_2" name="Hello">
       <script>System.out.println("Hello World");</script>
     </scriptTask>
     <sequenceFlow sourceRef="_2" targetRef="_3"/>

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithGraphical.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithGraphical.xml	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-MinimalProcessWithGraphical.xml	2009-08-18 22:38:37 UTC (rev 28978)
@@ -13,7 +13,7 @@
   <process id="Minimal" name="Minimal Process">
     <startEvent id="_1" name="StartProcess" g:x="1" g:y="1" />
     <sequenceFlow sourceRef="_1" targetRef="_2"/>
-    <scriptTask id="_2" name="Hello" scriptLanguage="java">
+    <scriptTask id="_2" name="Hello">
       <script>System.out.println("Hello World");</script>
     </scriptTask>
     <sequenceFlow sourceRef="_2" targetRef="_3" g:bendpoints="[10,10]" />

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-SubProcess.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-SubProcess.xml	2009-08-18 18:56:13 UTC (rev 28977)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/resources/BPMN2-SubProcess.xml	2009-08-18 22:38:37 UTC (rev 28978)
@@ -14,7 +14,7 @@
     <subProcess id="_2" name="Hello" >
       <startEvent id="_2-1" name="StartSubProcess"/>
       <sequenceFlow sourceRef="_2-1" targetRef="_2-2"/>
-      <scriptTask id="_2-2" name="Hello" scriptLanguage="java">
+      <scriptTask id="_2-2" name="Hello">
         <script>System.out.println("Hello World");</script>
       </scriptTask>
       <sequenceFlow sourceRef="_2-2" targetRef="_2-3"/>



More information about the jboss-svn-commits mailing list