[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