[jboss-svn-commits] JBL Code SVN: r29742 - in labs/jbossrules/trunk/drools-core: src/main/java/org/drools/workflow/core and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Oct 22 06:12:35 EDT 2009
Author: KrisVerlaenen
Date: 2009-10-22 06:12:34 -0400 (Thu, 22 Oct 2009)
New Revision: 29742
Modified:
labs/jbossrules/trunk/drools-core/.classpath
labs/jbossrules/trunk/drools-core/.project
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/WorkflowProcess.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/WorkflowProcessImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/DynamicNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java
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/EndNodeInstance.java
Log:
- adding bpmn2 implementations
Modified: labs/jbossrules/trunk/drools-core/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-core/.classpath 2009-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/.classpath 2009-10-22 10:12:34 UTC (rev 29742)
@@ -6,7 +6,7 @@
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
- <classpathentry kind="src" path="/drools-api"/>
+ <classpathentry kind="var" path="M2_REPO/org/drools/drools-api/5.1.0.SNAPSHOT/drools-api-5.1.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-api/5.1.0.SNAPSHOT/drools-api-5.1.0.SNAPSHOT-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
@@ -16,5 +16,5 @@
<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.12/mvel2-2.0.12.jar"/>
<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar" sourcepath="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/.project
===================================================================
--- labs/jbossrules/trunk/drools-core/.project 2009-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/.project 2009-10-22 10:12:34 UTC (rev 29742)
@@ -1,9 +1,7 @@
<projectDescription>
<name>drools-core</name>
<comment>A rule production system</comment>
- <projects>
- <project>drools-api</project>
- </projects>
+ <projects/>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/WorkflowProcess.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/WorkflowProcess.java 2009-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/WorkflowProcess.java 2009-10-22 10:12:34 UTC (rev 29742)
@@ -80,4 +80,12 @@
*/
String[] getGlobalNames();
+ /**
+ * Returns whether this process will automatically complete if it
+ * contains no active node instances anymore
+ *
+ * @return the names of the globals of this RuleFlow process
+ */
+ boolean isAutoComplete();
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/WorkflowProcessImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/WorkflowProcessImpl.java 2009-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/WorkflowProcessImpl.java 2009-10-22 10:12:34 UTC (rev 29742)
@@ -29,6 +29,8 @@
public class WorkflowProcessImpl extends ProcessImpl implements WorkflowProcess, org.drools.workflow.core.NodeContainer {
private static final long serialVersionUID = 400L;
+
+ private boolean autoComplete = false;
private org.drools.workflow.core.NodeContainer nodeContainer;
public WorkflowProcessImpl() {
@@ -60,5 +62,13 @@
nodeContainer.addNode(node);
((org.drools.workflow.core.Node) node).setNodeContainer(this);
}
+
+ public boolean isAutoComplete() {
+ return autoComplete;
+ }
+
+ public void setAutoComplete(boolean autoComplete) {
+ this.autoComplete = autoComplete;
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/DynamicNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/DynamicNode.java 2009-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/DynamicNode.java 2009-10-22 10:12:34 UTC (rev 29742)
@@ -4,14 +4,4 @@
private static final long serialVersionUID = 400L;
- private String ruleFlowGroup;
-
- public String getRuleFlowGroup() {
- return ruleFlowGroup;
- }
-
- public void setRuleFlowGroup(String ruleFlowGroup) {
- this.ruleFlowGroup = ruleFlowGroup;
- }
-
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java 2009-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java 2009-10-22 10:12:34 UTC (rev 29742)
@@ -25,7 +25,6 @@
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
-import org.drools.Agenda;
import org.drools.common.EventSupport;
import org.drools.common.InternalRuleBase;
import org.drools.common.InternalWorkingMemory;
@@ -42,10 +41,11 @@
import org.drools.workflow.core.node.EventNodeInterface;
import org.drools.workflow.instance.NodeInstance;
import org.drools.workflow.instance.WorkflowProcessInstance;
-import org.drools.workflow.instance.node.StateBasedNodeInstance;
+import org.drools.workflow.instance.node.EndNodeInstance;
import org.drools.workflow.instance.node.EventBasedNodeInstanceInterface;
import org.drools.workflow.instance.node.EventNodeInstance;
import org.drools.workflow.instance.node.EventNodeInstanceInterface;
+import org.drools.workflow.instance.node.StateBasedNodeInstance;
/**
* Default implementation of a RuleFlow process instance.
@@ -81,7 +81,7 @@
}
public Collection<org.drools.runtime.process.NodeInstance> getNodeInstances() {
- return new ArrayList(getNodeInstances(false));
+ return new ArrayList<org.drools.runtime.process.NodeInstance>(getNodeInstances(false));
}
public Collection<NodeInstance> getNodeInstances(boolean recursive) {
@@ -336,8 +336,16 @@
}
public void nodeInstanceCompleted(NodeInstance nodeInstance, String outType) {
- throw new IllegalArgumentException(
- "Completing a node instance that has no outgoing connection not suppoerted.");
+ if (nodeInstance instanceof EndNodeInstance) {
+ if (((org.drools.workflow.core.WorkflowProcess) getProcess()).isAutoComplete()) {
+ if (nodeInstances.isEmpty()) {
+ setState(ProcessInstance.STATE_COMPLETED);
+ }
+ }
+ } else {
+ throw new IllegalArgumentException(
+ "Completing a node instance that has no outgoing connection not suppoerted.");
+ }
}
}
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-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java 2009-10-22 10:12:34 UTC (rev 29742)
@@ -36,7 +36,6 @@
import org.drools.workflow.instance.NodeInstance;
import org.drools.workflow.instance.NodeInstanceContainer;
import org.drools.workflow.instance.WorkflowProcessInstance;
-import org.drools.workflow.instance.impl.ExtendedNodeInstanceImpl;
import org.drools.workflow.instance.impl.NodeInstanceFactory;
import org.drools.workflow.instance.impl.NodeInstanceFactoryRegistry;
import org.drools.workflow.instance.impl.NodeInstanceImpl;
@@ -152,7 +151,7 @@
}
public Collection<org.drools.runtime.process.NodeInstance> getNodeInstances() {
- return new ArrayList(getNodeInstances(false));
+ return new ArrayList<org.drools.runtime.process.NodeInstance>(getNodeInstances(false));
}
public Collection<NodeInstance> getNodeInstances(boolean recursive) {
@@ -276,8 +275,17 @@
}
public void nodeInstanceCompleted(NodeInstance nodeInstance, String outType) {
- throw new IllegalArgumentException(
- "Completing a node instance that has no outgoing connection not supported.");
+ if (nodeInstance instanceof EndNodeInstance) {
+ if (((org.drools.workflow.core.WorkflowProcess) getProcessInstance().getProcess()).isAutoComplete()) {
+ if (nodeInstances.isEmpty()) {
+ triggerCompleted(
+ org.drools.workflow.core.Node.CONNECTION_DEFAULT_TYPE);
+ }
+ }
+ } else {
+ throw new IllegalArgumentException(
+ "Completing a node instance that has no outgoing connection not supported.");
+ }
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/EndNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/EndNodeInstance.java 2009-10-22 10:10:24 UTC (rev 29741)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/EndNodeInstance.java 2009-10-22 10:12:34 UTC (rev 29742)
@@ -57,6 +57,9 @@
if (!hidden) {
((EventSupport) workingMemory).getRuleFlowEventSupport().fireAfterRuleFlowNodeLeft(this, (InternalWorkingMemory) workingMemory);
}
+ } else {
+ ((NodeInstanceContainer) getNodeInstanceContainer())
+ .nodeInstanceCompleted(this, null);
}
}
More information about the jboss-svn-commits
mailing list