[jboss-svn-commits] JBL Code SVN: r20004 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: workflow/instance/impl and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun May 18 07:54:27 EDT 2008


Author: KrisVerlaenen
Date: 2008-05-18 07:54:26 -0400 (Sun, 18 May 2008)
New Revision: 20004

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/WorkItemManager.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/SubProcessNodeInstance.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java
Log:
JBRULES-1610: Binary serialization for processes
 - Preparations for process binary serialization

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/WorkItemManager.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/WorkItemManager.java	2008-05-18 10:26:40 UTC (rev 20003)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/WorkItemManager.java	2008-05-18 11:54:26 UTC (rev 20004)
@@ -1,10 +1,9 @@
 package org.drools.process.instance;
 
-import java.io.Serializable;
 import java.io.Externalizable;
 import java.io.IOException;
+import java.io.ObjectInput;
 import java.io.ObjectOutput;
-import java.io.ObjectInput;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -49,7 +48,7 @@
 
 	public void internalExecuteWorkItem(WorkItem workItem) {
 	    ((WorkItemImpl) workItem).setId(++workItemCounter);
-	    workItems.put(new Long(workItem.getId()), workItem);
+	    internalAddWorkItem(workItem);
 	    WorkItemHandler handler = (WorkItemHandler) this.workItemHandlers.get(workItem.getName());
 	    if (handler != null) {
 	        handler.executeWorkItem(workItem, this);
@@ -57,6 +56,10 @@
 	        System.err.println("Could not find work item handler for " + workItem.getName());
 	    }
 	}
+	
+	public void internalAddWorkItem(WorkItem workItem) {
+	    workItems.put(new Long(workItem.getId()), workItem);
+	}
 
     public void internalAbortWorkItem(long id) {
         WorkItemImpl workItem = (WorkItemImpl) workItems.get(new Long(id));
@@ -73,8 +76,11 @@
     
 	public Set<WorkItem> getWorkItems() {
 	    return new HashSet<WorkItem>(workItems.values());
-
 	}
+	
+	public WorkItem getWorkItem(long id) {
+		return workItems.get(id);
+	}
 
     public void completeWorkItem(long id, Map<String, Object> results) {
         WorkItemImpl workItem = (WorkItemImpl) workItems.get(new Long(id));

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	2008-05-18 10:26:40 UTC (rev 20003)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/WorkflowProcessInstanceImpl.java	2008-05-18 11:54:26 UTC (rev 20004)
@@ -110,6 +110,14 @@
         }
         return nodeInstance;
     }
+    
+    public long getNodeInstanceCounter() {
+    	return nodeInstanceCounter;
+    }
+    
+    public void internalSetNodeInstanceCounter(long nodeInstanceCounter) {
+    	this.nodeInstanceCounter = nodeInstanceCounter;
+    }
 
     public Agenda getAgenda() {
         if ( getWorkingMemory() == null ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/SubProcessNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/SubProcessNodeInstance.java	2008-05-18 10:26:40 UTC (rev 20003)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/SubProcessNodeInstance.java	2008-05-18 11:54:26 UTC (rev 20004)
@@ -62,6 +62,10 @@
     public long getProcessInstanceId() {
     	return processInstanceId;
     }
+    
+    public void internalSetProcessInstanceId(long processInstanceId) {
+    	this.processInstanceId = processInstanceId;
+    }
 
     public void addEventListeners() {
         super.addEventListeners();

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java	2008-05-18 10:26:40 UTC (rev 20003)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java	2008-05-18 11:54:26 UTC (rev 20004)
@@ -15,6 +15,14 @@
     public TimerNode getTimerNode() {
         return (TimerNode) getNode();
     }
+    
+    public long getTimerId() {
+    	return timerId;
+    }
+    
+    public void internalSetTimerId(long timerId) {
+    	this.timerId = timerId;
+    }
 
     public void internalTrigger(NodeInstance from, String type) {
         if (!Node.CONNECTION_DEFAULT_TYPE.equals(type)) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java	2008-05-18 10:26:40 UTC (rev 20003)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java	2008-05-18 11:54:26 UTC (rev 20004)
@@ -38,15 +38,24 @@
 
     private static final long serialVersionUID = 400L;
     
-    private WorkItemImpl workItem;
+    private long workItemId = -1;
+    private transient WorkItemImpl workItem;
     
     protected WorkItemNode getWorkItemNode() {
         return (WorkItemNode) getNode();
     }
     
     public WorkItem getWorkItem() {
+    	if (workItem == null && workItemId >= 0) {
+    		workItem = (WorkItemImpl) getProcessInstance().getWorkingMemory()
+    			.getWorkItemManager().getWorkItem(workItemId);
+    	}
         return workItem;
     }
+    
+    public void internalSetWorkItemId(long workItemId) {
+    	this.workItemId = workItemId;
+    }
 
     public void internalTrigger(final NodeInstance from, String type) {
         // TODO this should be included for ruleflow only, not for BPEL
@@ -78,6 +87,8 @@
         getProcessInstance().getWorkingMemory().getWorkItemManager().internalExecuteWorkItem(workItem);
         if (!workItemNode.isWaitForCompletion()) {
             triggerCompleted();
+        } else {
+        	this.workItemId = workItem.getId();
         }
     }
 
@@ -113,14 +124,14 @@
     }
 
     public void workItemAborted(WorkItem workItem) {
-        if ( this.workItem.getId() == workItem.getId() ) {
+        if ( getWorkItem().getId() == workItem.getId() ) {
             removeEventListeners();
             triggerCompleted(workItem);
         }
     }
 
     public void workItemCompleted(WorkItem workItem) {
-        if ( this.workItem.getId() == workItem.getId() ) {
+        if ( getWorkItem().getId() == workItem.getId() ) {
             removeEventListeners();
             triggerCompleted(workItem);
         }




More information about the jboss-svn-commits mailing list