[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