[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