Remove replicatedSend as meaningless

Project: http://git-wip-us.apache.org/repos/asf/ode-jacob/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode-jacob/commit/c643a62a
Tree: http://git-wip-us.apache.org/repos/asf/ode-jacob/tree/c643a62a
Diff: http://git-wip-us.apache.org/repos/asf/ode-jacob/diff/c643a62a

Branch: refs/heads/master
Commit: c643a62a9887ce1db7f42b90cb00a74b76f8ee1e
Parents: 9fe2dea
Author: Hadrian Zbarcea <[email protected]>
Authored: Sun Jan 12 20:57:37 2014 -0500
Committer: Hadrian Zbarcea <[email protected]>
Committed: Sun Jan 12 20:57:37 2014 -0500

----------------------------------------------------------------------
 .../ode/jacob/vpu/ExecutionQueueImpl.java       | 28 +++----------
 .../apache/ode/jacob/oo/JacobChannelsTest.java  | 42 +++++++++++++++++++-
 .../ode/jacob/soup/jackson/JacksonSoupTest.java | 12 +++---
 3 files changed, 52 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/c643a62a/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java 
b/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
index 7520f90..42393f8 100644
--- a/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
+++ b/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
@@ -153,27 +153,18 @@ public class ExecutionQueueImpl implements ExecutionQueue 
{
             Comm comm = i.next();
             ChannelFrame chnlFrame = 
findChannelFrame(comm.getChannel().getId());
             if (comm instanceof CommSend) {
-                if (chnlFrame.replicatedSend) {
-                    // TODO: JACOB "bad-process" ex
-                    throw new IllegalStateException("Send attempted on channel 
containing replicated send! Channel= "
-                            + comm.getChannel());
-                }
-                if (group.isReplicated()) {
-                    chnlFrame.replicatedSend = true;
-                }
-
                 CommSend commSend = (CommSend) comm;
                 MessageFrame mframe = new MessageFrame(commGroupFrame, 
chnlFrame, commSend.getMessage());
                 commGroupFrame.commFrames.add(mframe);
                 chnlFrame.msgFrames.add(mframe);
             } else if (comm instanceof CommRecv) {
-                if (chnlFrame.replicatedRecv) {
+                if (chnlFrame.replicated) {
                     // TODO: JACOB "bad-process" ex
                     throw new IllegalStateException(
                             "Receive attempted on channel containing 
replicated receive! Channel= " + comm.getChannel());
                 }
                 if (group.isReplicated()) {
-                    chnlFrame.replicatedRecv = true;
+                    chnlFrame.replicated = true;
                 }
                 CommRecv commRecv = (CommRecv) comm;
                 ListenerFrame oframe = new ListenerFrame(commGroupFrame, 
chnlFrame, commRecv.getListener());
@@ -438,9 +429,7 @@ public class ExecutionQueueImpl implements ExecutionQueue {
         /** External Reference Count */
         int refCount;
 
-        boolean replicatedSend;
-
-        boolean replicatedRecv;
+        boolean replicated;
 
         Set<ListenerFrame> objFrames = new LinkedHashSet<ListenerFrame>();
 
@@ -479,8 +468,7 @@ public class ExecutionQueueImpl implements ExecutionQueue {
             id = in.readInt();
             description = in.readUTF();
             refCount = in.readInt();
-            replicatedSend = in.readBoolean();
-            replicatedRecv = in.readBoolean();
+            replicated = in.readBoolean();
             int cnt = in.readInt();
             for (int i = 0; i < cnt; ++i) {
                 objFrames.add((ListenerFrame) in.readObject());
@@ -496,8 +484,7 @@ public class ExecutionQueueImpl implements ExecutionQueue {
             out.writeInt(id);
             out.writeUTF(description == null ? "" : description);
             out.writeInt(refCount);
-            out.writeBoolean(replicatedSend);
-            out.writeBoolean(replicatedRecv);
+            out.writeBoolean(replicated);
             out.writeInt(objFrames.size());
             for (Iterator<ListenerFrame> i = objFrames.iterator(); 
i.hasNext();) {
                 out.writeObject(i.next());
@@ -519,12 +506,9 @@ public class ExecutionQueueImpl implements ExecutionQueue {
             buf.append(refCount);
             buf.append(", msgs=");
             buf.append(msgFrames.size());
-            if (replicatedSend) {
-                buf.append("R");
-            }
             buf.append(", objs=");
             buf.append(objFrames.size());
-            if (replicatedRecv) {
+            if (replicated) {
                 buf.append("R");
             }
             buf.append("}");

http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/c643a62a/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java 
b/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java
index 7bf6506..5d277e5 100644
--- a/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java
+++ b/src/test/java/org/apache/ode/jacob/oo/JacobChannelsTest.java
@@ -19,6 +19,12 @@
 package org.apache.ode.jacob.oo;
 
 
+import static org.apache.ode.jacob.Jacob.object;
+import static org.apache.ode.jacob.oo.ProcessUtil.receive;
+
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.ode.jacob.soup.CommChannel;
 import org.apache.ode.jacob.vpu.ChannelFactory;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
@@ -32,8 +38,7 @@ public class JacobChannelsTest {
        @Test
        public void testMultipleSameTypeChannels() {
         JacobVPU vpu = new JacobVPU();
-        ExecutionQueueImpl queue = new ExecutionQueueImpl();
-        vpu.setContext(queue);
+        vpu.setContext(new ExecutionQueueImpl());
 
                Channel one = vpu.newChannel(Val.class, "");
                Channel two = vpu.newChannel(Val.class, "");
@@ -43,4 +48,37 @@ public class JacobChannelsTest {
                Assert.assertNotEquals(back1.getId(), back2.getId());
        }
 
+       @Test
+       @SuppressWarnings("serial")
+       public void testMultipleReceiversSameChannel() {
+        final JacobVPU vpu = new JacobVPU();
+        vpu.setContext(new ExecutionQueueImpl());
+        
+        final List<String> result = new ArrayList<String>();
+        vpu.inject(new Runnable() {
+                       public void run() {
+                               Val v = (Val)vpu.newChannel(Val.class, "");
+                       object(receive(v, new Val() {
+                           public void val(Object retVal) {
+                               result.add("Hello " + retVal);
+                           }
+                       }));
+                       object(receive(v, new Val() {
+                           public void val(Object retVal) {
+                               result.add("Bonjour " + retVal);
+                           }
+                       }));
+                       
+                       v.val("Hadrian");
+                       
+                       }
+        });
+
+        while (vpu.execute()) {
+               // keep doing it...
+        }
+        // TODO: although it should probably be two
+        //  not really clear what pi calculus says about shared channels
+               Assert.assertEquals(1, result.size());
+       }
 }

http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/c643a62a/src/test/java/org/apache/ode/jacob/soup/jackson/JacksonSoupTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/ode/jacob/soup/jackson/JacksonSoupTest.java 
b/src/test/java/org/apache/ode/jacob/soup/jackson/JacksonSoupTest.java
index 9b21b7c..c5de05d 100644
--- a/src/test/java/org/apache/ode/jacob/soup/jackson/JacksonSoupTest.java
+++ b/src/test/java/org/apache/ode/jacob/soup/jackson/JacksonSoupTest.java
@@ -54,12 +54,12 @@ public class JacksonSoupTest {
         
         queue = new JacksonExecutionQueueImpl();
         
-        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":1,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess\",\"@id\":1,\"_in\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess\",\"@id\":1,\"in\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2},\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnab
 
le#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"Hello\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":false,\"objFrames\":[],\"msgFrames\":[],\"description\":\"sim
 
pleHelloWorld-out\"},{\"@id\":2,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":false,\"objFrames\":[],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
-        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":2,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess\",\"@id\":1,\"in\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2},\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"Hello\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"acti
 
on\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloW
 
orld-out\"},{\"@id\":5,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":false,\"objFrames\":[],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
-        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":3,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"Hello\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apac
 
he.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"},{\"@id\":5,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":true,\"objFrames\":[{\"@id\":6,\"commGroupFrame\":{\"@id\":7,\"replicated\":true,\"commFrames\":[6]},\"channelFrame\":5,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":8,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$Forward
 
erProcess$ForwarderProcessVal\",\"@id\":9,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
-        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":4,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\
 
"body\":[\"[Ljava.lang.Object;\",[\"Hello\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"},{\"@id\":5,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":true,\"objFrames\":[{\"@id\":6,\"commGroupFrame\":{\"@id\":7,\"replicated\":true,\"commFrames\":[6]},\"channelFrame\":5,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld
 
.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":8,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":9,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
-        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":5,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\"body\":[\"[Ljava.lang.Object;\",[\"Hello\"]]},{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderPro
 
cess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\"body\":[\"[Ljava.lang.Object;\",[\"World\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"}]],\"global\":null}");
-        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":6,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\"body\":[\"[Ljava.lang.Object;\",[\"World\"]]},{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$P
 
rinterProcessVal\"}}},\"body\":[\"[Ljava.lang.Object;\",[\"Hello\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicatedSend\":false,\"replicatedRecv\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"}]],\"global\":null}");
+        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":1,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess\",\"@id\":1,\"_in\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess\",\"@id\":1,\"in\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2},\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnab
 
le#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"Hello\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicated\":false,\"objFrames\":[],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"},{\"@id\"
 
:2,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicated\":false,\"objFrames\":[],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
+        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":2,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess\",\"@id\":1,\"in\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2},\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"Hello\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"acti
 
on\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicated\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"},{\"@id\":5,\"type
 
\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicated\":false,\"objFrames\":[],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
+        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":3,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"Hello\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apac
 
he.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicated\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"},{\"@id\":5,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicated\":true,\"objFrames\":[{\"@id\":6,\"commGroupFrame\":{\"@id\":7,\"replicated\":true,\"commFrames\":[6]},\"channelFrame\":5,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":8,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":9,\"out\":{\"@clas
 
s\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
+        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":4,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"java.lang.Runnable#run\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$StringEmitterProcess\",\"@id\":1,\"str\":\"World\",\"to\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":2}}},\"body\":[\"[Ljava.lang.Class;\",[]]},{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\
 
"body\":[\"[Ljava.lang.Object;\",[\"Hello\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicated\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"},{\"@id\":5,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":2,\"refCount\":0,\"replicated\":true,\"objFrames\":[{\"@id\":6,\"commGroupFrame\":{\"@id\":7,\"replicated\":true,\"commFrames\":[6]},\"channelFrame\":5,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProces
 
s\",\"@id\":8,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":9,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-x\"}]],\"global\":null}");
+        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":5,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\"body\":[\"[Ljava.lang.Object;\",[\"Hello\"]]},{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderPro
 
cess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\"body\":[\"[Ljava.lang.Object;\",[\"World\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicated\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"}]],\"global\":null}");
+        
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":6,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$ForwarderProcess$ForwarderProcessVal\",\"@id\":2,\"out\":{\"@class\":\"org.apache.ode.jacob.oo.Val\",\"channelType\":\"org.apache.ode.jacob.oo.Val\",\"channelId\":1}}}},\"body\":[\"[Ljava.lang.Object;\",[\"World\"]]},{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$P
 
rinterProcessVal\"}}},\"body\":[\"[Ljava.lang.Object;\",[\"Hello\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[{\"@id\":1,\"type\":\"org.apache.ode.jacob.oo.Val\",\"id\":1,\"refCount\":0,\"replicated\":true,\"objFrames\":[{\"@id\":2,\"commGroupFrame\":{\"@id\":3,\"replicated\":true,\"commFrames\":[2]},\"channelFrame\":1,\"_continuation\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":4,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}}],\"msgFrames\":[],\"description\":\"simpleHelloWorld-out\"}]],\"global\":null}");
         
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":7,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}},\"body\":[\"[Ljava.lang.Object;\",[\"Hello\"]]},{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}},\"body\":[\"[Ljava.lang.Object;\",[\"World\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$C
 hannelFrame;\",[]],\"global\":null}");
         
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":8,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[{\"id\":0,\"action\":\"org.apache.ode.jacob.oo.Val#val\",\"to\":{\"@class\":\"org.apache.ode.jacob.ChannelRef\",\"target\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessReceiveProcess\",\"@id\":1,\"receiver\":{\"@class\":\"org.apache.ode.jacob.examples.helloworld.HelloWorld$PrinterProcess$PrinterProcessVal\"}}},\"body\":[\"[Ljava.lang.Object;\",[\"World\"]]}]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[]],\"global\":null}");
         
fixtures.add("{\"objIdCounter\":2,\"currentCycle\":9,\"messages\":[\"[Lorg.apache.ode.jacob.Message;\",[]],\"channels\":[\"[Lorg.apache.ode.jacob.vpu.ExecutionQueueImpl$ChannelFrame;\",[]],\"global\":null}");

Reply via email to