[jboss-svn-commits] JBL Code SVN: r20015 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: marshalling and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 19 07:03:16 EDT 2008
Author: KrisVerlaenen
Date: 2008-05-19 07:03:16 -0400 (Mon, 19 May 2008)
New Revision: 20015
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/PersisterEnums.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/JoinInstance.java
Log:
JBRULES-1610: Binary serialization for processes
- core implementation
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java 2008-05-19 09:05:44 UTC (rev 20014)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java 2008-05-19 11:03:16 UTC (rev 20015)
@@ -61,7 +61,7 @@
this.listeners.remove( listener );
}
- public List getEventListeners() {
+ public List<RuleFlowEventListener> getEventListeners() {
return Collections.unmodifiableList( this.listeners );
}
@@ -82,9 +82,8 @@
final RuleFlowStartedEvent event = new RuleFlowStartedEvent( instance );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).beforeRuleFlowStarted( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.beforeRuleFlowStarted( event, workingMemory );
}
}
@@ -97,9 +96,8 @@
final RuleFlowStartedEvent event = new RuleFlowStartedEvent( instance );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).afterRuleFlowStarted( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.afterRuleFlowStarted( event, workingMemory );
}
}
@@ -112,9 +110,8 @@
final RuleFlowCompletedEvent event = new RuleFlowCompletedEvent( instance );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).beforeRuleFlowCompleted( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.beforeRuleFlowCompleted( event, workingMemory );
}
}
@@ -127,9 +124,8 @@
final RuleFlowCompletedEvent event = new RuleFlowCompletedEvent( instance );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).afterRuleFlowCompleted( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.afterRuleFlowCompleted( event, workingMemory );
}
}
@@ -141,9 +137,8 @@
final RuleFlowGroupActivatedEvent event = new RuleFlowGroupActivatedEvent( ruleFlowGroup );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).beforeRuleFlowGroupActivated( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.beforeRuleFlowGroupActivated( event, workingMemory );
}
}
@@ -155,9 +150,8 @@
final RuleFlowGroupActivatedEvent event = new RuleFlowGroupActivatedEvent( ruleFlowGroup );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).afterRuleFlowGroupActivated( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.afterRuleFlowGroupActivated( event, workingMemory );
}
}
@@ -169,9 +163,8 @@
final RuleFlowGroupDeactivatedEvent event = new RuleFlowGroupDeactivatedEvent( ruleFlowGroup );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).beforeRuleFlowGroupDeactivated( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.beforeRuleFlowGroupDeactivated( event, workingMemory );
}
}
@@ -183,9 +176,8 @@
final RuleFlowGroupDeactivatedEvent event = new RuleFlowGroupDeactivatedEvent( ruleFlowGroup );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).afterRuleFlowGroupDeactivated( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.afterRuleFlowGroupDeactivated( event, workingMemory );
}
}
@@ -198,9 +190,8 @@
final RuleFlowNodeTriggeredEvent event = new RuleFlowNodeTriggeredEvent( ruleFlowNodeInstance );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).beforeRuleFlowNodeTriggered( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.beforeRuleFlowNodeTriggered( event, workingMemory );
}
}
@@ -213,9 +204,8 @@
final RuleFlowNodeTriggeredEvent event = new RuleFlowNodeTriggeredEvent( ruleFlowNodeInstance );
- for ( int i = 0, size = this.listeners.size(); i < size; i++ ) {
- ((RuleFlowEventListener) this.listeners.get( i )).afterRuleFlowNodeTriggered( event,
- workingMemory );
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.afterRuleFlowNodeTriggered( event, workingMemory );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java 2008-05-19 09:05:44 UTC (rev 20014)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/InputMarshaller.java 2008-05-19 11:03:16 UTC (rev 20015)
@@ -2,6 +2,7 @@
import java.io.IOException;
import java.io.ObjectInputStream;
+import java.util.HashMap;
import java.util.Map;
import java.util.Queue;
@@ -58,6 +59,7 @@
import org.drools.workflow.instance.NodeInstance;
import org.drools.workflow.instance.impl.NodeInstanceImpl;
import org.drools.workflow.instance.node.EventNodeInstance;
+import org.drools.workflow.instance.node.JoinInstance;
import org.drools.workflow.instance.node.MilestoneNodeInstance;
import org.drools.workflow.instance.node.RuleSetNodeInstance;
import org.drools.workflow.instance.node.SubProcessNodeInstance;
@@ -573,6 +575,19 @@
((TimerNodeInstance) nodeInstance)
.internalSetTimerId(stream.readLong());
break;
+ case PersisterEnums.JOIN_NODE_INSTANCE:
+ nodeInstance = new JoinInstance();
+ int number = stream.readInt();
+ if (number > 0) {
+ Map<Long, Integer> triggers = new HashMap<Long, Integer>();
+ for (int i = 0; i < number; i++) {
+ long l = stream.readLong();
+ int count = stream.readInt();
+ triggers.put(l, count);
+ }
+ ((JoinInstance) nodeInstance).internalSetTriggers(triggers);
+ }
+ break;
default:
throw new IllegalArgumentException(
"Unknown node type: " + nodeType);
@@ -581,7 +596,9 @@
nodeInstance.setNodeInstanceContainer(processInstance);
nodeInstance.setProcessInstance(processInstance);
nodeInstance.setId(id);
- ((EventNodeInstance) nodeInstance).addEventListeners();
+ if (nodeInstance instanceof EventNodeInstance) {
+ ((EventNodeInstance) nodeInstance).addEventListeners();
+ }
return nodeInstance;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java 2008-05-19 09:05:44 UTC (rev 20014)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java 2008-05-19 11:03:16 UTC (rev 20015)
@@ -47,6 +47,7 @@
import org.drools.util.ObjectHashMap;
import org.drools.util.ObjectHashSet;
import org.drools.workflow.instance.NodeInstance;
+import org.drools.workflow.instance.node.JoinInstance;
import org.drools.workflow.instance.node.MilestoneNodeInstance;
import org.drools.workflow.instance.node.RuleSetNodeInstance;
import org.drools.workflow.instance.node.SubProcessNodeInstance;
@@ -625,6 +626,14 @@
} else if (nodeInstance instanceof TimerNodeInstance) {
stream.writeInt(PersisterEnums.TIMER_NODE_INSTANCE);
stream.writeLong(((TimerNodeInstance) nodeInstance).getTimerId());
+ } else if (nodeInstance instanceof JoinInstance) {
+ stream.writeInt(PersisterEnums.JOIN_NODE_INSTANCE);
+ Map<Long, Integer> triggers = ((JoinInstance) nodeInstance).getTriggers();
+ stream.writeInt(triggers.size());
+ for (Map.Entry<Long, Integer> entry: triggers.entrySet()) {
+ stream.writeLong(entry.getKey());
+ stream.writeInt(entry.getValue());
+ }
} else {
throw new IllegalArgumentException(
"Unknown node instance type: " + nodeInstance);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/PersisterEnums.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/PersisterEnums.java 2008-05-19 09:05:44 UTC (rev 20014)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/PersisterEnums.java 2008-05-19 11:03:16 UTC (rev 20015)
@@ -34,5 +34,6 @@
public static final int SUB_PROCESS_NODE_INSTANCE = 22;
public static final int MILESTONE_NODE_INSTANCE = 23;
public static final int TIMER_NODE_INSTANCE = 24;
+ public static final int JOIN_NODE_INSTANCE = 25;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/JoinInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/JoinInstance.java 2008-05-19 09:05:44 UTC (rev 20014)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/JoinInstance.java 2008-05-19 11:03:16 UTC (rev 20015)
@@ -35,7 +35,7 @@
private static final long serialVersionUID = 400L;
- private final Map<Long, Integer> triggers = new HashMap<Long, Integer>();
+ private Map<Long, Integer> triggers = new HashMap<Long, Integer>();
protected Join getJoin() {
return (Join) getNode();
@@ -118,4 +118,12 @@
}
getNodeInstanceContainer().getNodeInstance( getJoin().getTo().getTo() ).trigger( this, getJoin().getTo().getToType() );
}
+
+ public Map<Long, Integer> getTriggers() {
+ return triggers;
+ }
+
+ public void internalSetTriggers(Map<Long, Integer> triggers) {
+ this.triggers = triggers;
+ }
}
More information about the jboss-svn-commits
mailing list