[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