Author: hadrian
Date: Fri Jan 11 05:02:21 2013
New Revision: 1431886

URL: http://svn.apache.org/viewvc?rev=1431886&view=rev
Log:
ODE-979. Replace ChannelListener with ReceiveProcess to make code generation 
unnecessary

Added:
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ClassUtil.java   (with 
props)
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java   
(with props)
Modified:
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/COMPENSATE.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java
    
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java
    
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java
    
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java
    
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/COMPENSATE.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/COMPENSATE.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/COMPENSATE.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/COMPENSATE.java
 Fri Jan 11 05:02:21 2013
@@ -20,32 +20,33 @@ package org.apache.ode.bpel.runtime;
 
 import org.apache.ode.bpel.o.OCompensate;
 import org.apache.ode.bpel.o.OScope;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Synch;
 import org.apache.ode.jacob.SynchChannel;
-import org.apache.ode.jacob.SynchChannelListener;
 
 
 /**
  * Runtime implementation of the <code>&lt;compensate&gt;</code> activity.
  */
 class COMPENSATE extends ACTIVITY {
-  private static final long serialVersionUID = -467758076635337675L;
-  private OCompensate _ocompact;
+    private static final long serialVersionUID = -467758076635337675L;
+    private OCompensate _ocompact;
 
-  public COMPENSATE(ActivityInfo self, ScopeFrame scopeFrame, LinkFrame 
linkFrame) {
-    super(self, scopeFrame, linkFrame);
-    _ocompact = (OCompensate) self.o;
-  }
-
-  public final void run() {
-    OScope scopeToCompensate = _ocompact.compensatedScope;
-    SynchChannel sc = newChannel(SynchChannel.class);
-    _self.parent.compensate(scopeToCompensate,sc);
-    object(new SynchChannelListener(sc) {
-    private static final long serialVersionUID = 3763991229748926216L;
-
-    public void ret() {
-        _self.parent.completed(null, CompensationHandler.emptySet());
-      }
-    });
-  }
+    public COMPENSATE(ActivityInfo self, ScopeFrame scopeFrame, LinkFrame 
linkFrame) {
+        super(self, scopeFrame, linkFrame);
+        _ocompact = (OCompensate) self.o;
+    }
+
+    public final void run() {
+        OScope scopeToCompensate = _ocompact.compensatedScope;
+        SynchChannel sc = newChannel(SynchChannel.class);
+        _self.parent.compensate(scopeToCompensate,sc);
+        object(new ReceiveProcess<SynchChannel, Synch>(sc, new Synch() {
+            public void ret() {
+                _self.parent.completed(null, CompensationHandler.emptySet());
+              }
+            }) {
+                private static final long serialVersionUID = 
3763991229748926216L;
+            });
+    }
 }

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ORDEREDCOMPENSATOR.java
 Fri Jan 11 05:02:21 2013
@@ -18,12 +18,13 @@
  */
 package org.apache.ode.bpel.runtime;
 
+import java.util.List;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Synch;
 import org.apache.ode.jacob.SynchChannel;
-import org.apache.ode.jacob.SynchChannelListener;
-
-import java.util.List;
 
 /**
  * Serially activates a list of compensations in order.
@@ -49,13 +50,13 @@ class ORDEREDCOMPENSATOR extends BpelJac
       SynchChannel r = newChannel(SynchChannel.class);
       CompensationHandler cdata = _compensations.remove(0);
       cdata.compChannel.compensate(r);
-      object(new SynchChannelListener(r) {
-        private static final long serialVersionUID = 7173916663479205420L;
-
-        public void ret() {
-          instance(ORDEREDCOMPENSATOR.this);
-        }
-      });
+      object(new ReceiveProcess<SynchChannel, Synch>(r, new Synch() {
+          public void ret() {
+            instance(ORDEREDCOMPENSATOR.this);
+          }
+        }) {
+          private static final long serialVersionUID = 7173916663479205420L;
+        });
     }
 
   }

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java 
(original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPEACT.java 
Fri Jan 11 05:02:21 2013
@@ -39,10 +39,11 @@ import org.apache.ode.bpel.runtime.chann
 import org.apache.ode.bpel.runtime.channels.ParentScopeChannelListener;
 import org.apache.ode.bpel.runtime.channels.ReadWriteLockChannel;
 import org.apache.ode.jacob.ChannelListener;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Synch;
 import org.apache.ode.jacob.SynchChannel;
-import org.apache.ode.jacob.SynchChannelListener;
+import org.apache.ode.jacob.Val;
 import org.apache.ode.jacob.ValChannel;
-import org.apache.ode.jacob.ValChannelListener;
 import org.w3c.dom.Element;
 
 /**
@@ -58,8 +59,6 @@ public class SCOPEACT extends ACTIVITY {
     }
 
     public void run() {
-
-        
         if (((OScope) _self.o).isolatedScope) {
             __log.debug("found ISOLATED scope, instance ISOLATEDGUARD");
             instance(new ISOLATEDGUARD(createLockList(), 
newChannel(SynchChannel.class)));
@@ -155,10 +154,7 @@ public class SCOPEACT extends ACTIVITY {
             Set<ChannelListener<?>> mlset = new HashSet<ChannelListener<?>>();
             
             if (_status == null)
-                mlset.add(new ValChannelListener(_self) {
-    
-                    private static final long serialVersionUID = 
5029554538593371750L;
-    
+                mlset.add(new ReceiveProcess<ValChannel, Val>(_self, new Val() 
{
                     /** Our owner will notify us when it becomes clear what to 
do with the links. */
                     public void val(Object retVal) {
                         if (__log.isDebugEnabled()) {
@@ -174,7 +170,8 @@ public class SCOPEACT extends ACTIVITY {
                             instance(LINKSTATUSINTERCEPTOR.this);
     
                     }
-    
+                }) {
+                    private static final long serialVersionUID = 
5029554538593371750L;
                 });
 
             for (final Map.Entry<OLink, LinkInfo> m : 
_interceptedChannels.links.entrySet()) {
@@ -267,16 +264,15 @@ public class SCOPEACT extends ACTIVITY {
                 else
                     il.lockChannel.readLock(_synchChannel);
 
-                object(new SynchChannelListener(_synchChannel) {
-                    private static final long serialVersionUID = 
2857261074409098274L;
-
+                object(new ReceiveProcess<SynchChannel, Synch>(_synchChannel, 
new Synch() {
                     public void ret() {
                         __log.debug("ISOLATIONGUARD: got lock: " + 
_locksNeeded.get(0));
                         _locksAcquired.add(_locksNeeded.remove(0));
                         instance(ISOLATEDGUARD.this);
                     }
+                }) {
+                    private static final long serialVersionUID = 
2857261074409098274L;
                 });
-
             }
         }
 

Modified: 
ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java 
(original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java Fri 
Jan 11 05:02:21 2013
@@ -66,26 +66,12 @@ public abstract class ChannelListener<CT
     public Set<Method> getImplementedMethods() {
         if (_implementedMethods == null) {
             Set<Method> implementedMethods = new HashSet<Method>();
-            getImplementedMethods(implementedMethods, 
getClass().getSuperclass());
+            ClassUtil.getImplementedMethods(implementedMethods, 
getClass().getSuperclass());
             _implementedMethods = 
Collections.unmodifiableSet(implementedMethods);
         }
         return _implementedMethods;
     }
 
-    private static Set<Method> getImplementedMethods(Set<Method> methods, 
Class<?> clazz) {
-        Class<?>[] interfaces = clazz.getInterfaces();
-        for (int i=0; i<interfaces.length; ++i) {
-            if (interfaces[i] != Channel.class) {
-                Method[] allmethods = interfaces[i].getDeclaredMethods();
-                for (int j=0; j<allmethods.length; ++j) {
-                    methods.add(allmethods[j]);
-                }
-                getImplementedMethods(methods, interfaces[i]);
-            }
-        }
-        return methods;
-    }
-
     /**
      * Get a description of the object for debugging purposes.
      *

Added: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ClassUtil.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ClassUtil.java?rev=1431886&view=auto
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ClassUtil.java (added)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ClassUtil.java Fri Jan 
11 05:02:21 2013
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.jacob;
+
+import java.lang.reflect.Method;
+import java.util.Set;
+
+
+public final class ClassUtil {
+    private ClassUtil() {
+        // Utility class
+    }
+
+    public static Set<Method> getImplementedMethods(Set<Method> methods, 
Class<?> clazz) {
+        // TODO: this can be optimized (some 20 times faster in my tests) by 
keeping a private 
+        //  map of interfaces to methods: Map<Class<?>, Method[]> and just do 
lookups
+        Class<?>[] interfaces = clazz.getInterfaces();
+        for (Class<?> iface : interfaces) {
+            // TODO: the test below could be more generic...
+            if (iface != Channel.class) {
+                for (Method method : iface.getDeclaredMethods()) {
+                    methods.add(method);
+                }
+                getImplementedMethods(methods, iface);
+            }
+        }
+        return methods;
+    }
+}

Propchange: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ClassUtil.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java?rev=1431886&view=auto
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java 
(added)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java Fri 
Jan 11 05:02:21 2013
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.jacob;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+
+@SuppressWarnings("serial")
+public abstract class ReceiveProcess<C extends Channel, R> extends 
ChannelListener<C> {
+    private transient Set<Method> _implementedMethods;
+    final R receiver;
+    
+    protected ReceiveProcess(C channel, R receiver) throws 
IllegalStateException {
+        super(channel);
+        this.receiver = receiver;
+    }
+
+    public R receiver() {
+        return receiver;
+    }
+
+    public Set<Method> getImplementedMethods() {
+        if (_implementedMethods == null) {
+            Set<Method> implementedMethods = new HashSet<Method>();
+            ClassUtil.getImplementedMethods(implementedMethods, 
receiver.getClass());
+            _implementedMethods = 
Collections.unmodifiableSet(implementedMethods);
+        }
+        return _implementedMethods;
+    }
+}

Propchange: 
ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java 
(original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java Fri 
Jan 11 05:02:21 2013
@@ -29,6 +29,7 @@ import org.apache.ode.jacob.ChannelListe
 import org.apache.ode.jacob.JacobObject;
 import org.apache.ode.jacob.JacobRunnable;
 import org.apache.ode.jacob.JacobThread;
+import org.apache.ode.jacob.ReceiveProcess;
 import org.apache.ode.jacob.SynchChannel;
 import org.apache.ode.jacob.soup.CommChannel;
 import org.apache.ode.jacob.soup.CommGroup;
@@ -399,7 +400,8 @@ public final class JacobVPU {
             stackThread();
             long ctime = System.currentTimeMillis();
             try {
-                _method.invoke(_methodBody, args);
+                _method.invoke(_methodBody instanceof ReceiveProcess ? 
+                    ((ReceiveProcess<?, ?>)_methodBody).receiver() : 
_methodBody, args);
                 if (synchChannel != null) {
                     synchChannel.ret();
                 }

Modified: 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java
 (original)
+++ 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java
 Fri Jan 11 05:02:21 2013
@@ -18,15 +18,18 @@
  */
 package org.apache.ode.jacob.examples.cell;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
 import junit.framework.TestCase;
+
 import org.apache.ode.jacob.JacobRunnable;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Val;
 import org.apache.ode.jacob.ValChannel;
-import org.apache.ode.jacob.ValChannelListener;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
 import org.apache.ode.jacob.vpu.JacobVPU;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
 
 public class JacobCellTest extends TestCase {
   private static Object _val;
@@ -62,11 +65,12 @@ static class CellTest1 extends JacobRunn
       ValChannel retChannel = newChannel(ValChannel.class, "val");
 
       instance(new CELL_<String>(cellChannel, "foo"));
-      object(new ValChannelListener(retChannel) {
+      object(new ReceiveProcess<ValChannel, Val>(retChannel, new Val() {
           public void val(Object retVal) {
-            _val = retVal;
-          }
-        });
+              _val = retVal;
+            }
+      }) {});
+
       cellChannel.read(retChannel);
     }
   }

Modified: 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java
 (original)
+++ 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java
 Fri Jan 11 05:02:21 2013
@@ -19,8 +19,9 @@
 package org.apache.ode.jacob.examples.eratosthenes;
 
 import org.apache.ode.jacob.JacobRunnable;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Synch;
 import org.apache.ode.jacob.SynchChannel;
-import org.apache.ode.jacob.SynchChannelListener;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
 import org.apache.ode.jacob.vpu.JacobVPU;
 
@@ -70,13 +71,13 @@ public class Sieve extends JacobRunnable
     }
 
     public void run() {
-      _out.val(_n, object(new 
SynchChannelListener(newChannel(SynchChannel.class)) {
-        private static final long serialVersionUID = -4336285925619915276L;
-
-        public void ret() {
-          instance(new Counter(_out, _n+1));
-        }
-      }));
+        _out.val(_n, object(new ReceiveProcess<SynchChannel, 
Synch>(newChannel(SynchChannel.class), new Synch() {
+            public void ret() {
+                instance(new Counter(_out, _n+1));
+            }
+        }) {
+            private static final long serialVersionUID = -4336285925619915276L;
+        }));
     }
   }
 
@@ -106,15 +107,15 @@ public class Sieve extends JacobRunnable
         private static final long serialVersionUID = -2145752474431263689L;
 
         public void val(final int n, final SynchChannel ret) {
-          _primes.val(n, object(new 
SynchChannelListener(newChannel(SynchChannel.class)) {
-            private static final long serialVersionUID = -3009595654233593893L;
-
+          _primes.val(n, object(new ReceiveProcess<SynchChannel, 
Synch>(newChannel(SynchChannel.class), new Synch() {
             public void ret() {
               NaturalNumberStreamChannel x = 
newChannel(NaturalNumberStreamChannel.class);
               instance(new PrimeFilter(n, _in, x));
               instance(new Head(x, _primes));
               ret.ret();
             }
+          }) {
+              private static final long serialVersionUID = 
-3009595654233593893L;
           }));
        }
       });
@@ -164,20 +165,21 @@ public class Sieve extends JacobRunnable
     }
     public void run() {
        object(true, new NaturalNumberStreamChannelListener(_in) {
-        private static final long serialVersionUID = 6625386475773075604L;
-
-        public void val(int n, final SynchChannel ret) {
-           if (n % _prime != 0)
-             _out.val(n, object(new 
SynchChannelListener(newChannel(SynchChannel.class)) {
-              private static final long serialVersionUID = 
2523405590764193613L;
+          private static final long serialVersionUID = 6625386475773075604L;
 
-              public void ret() {
+          public void val(int n, final SynchChannel ret) {
+              if (n % _prime != 0) {
+                 _out.val(n, object(new ReceiveProcess<SynchChannel, 
Synch>(newChannel(SynchChannel.class), new Synch() {
+                     public void ret() {
+                         ret.ret();
+                     }
+                 }) {
+                     private static final long serialVersionUID = 
2523405590764193613L;
+                 }));
+              } else {
                  ret.ret();
-               }
-             }));
-           else
-             ret.ret();
-         }
+              }
+          }
        });
     }
   }

Modified: 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java
 (original)
+++ 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java
 Fri Jan 11 05:02:21 2013
@@ -19,8 +19,9 @@
 package org.apache.ode.jacob.examples.sequence;
 
 import org.apache.ode.jacob.JacobRunnable;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Synch;
 import org.apache.ode.jacob.SynchChannel;
-import org.apache.ode.jacob.SynchChannelListener;
 
 /**
  * Abstract process that executes a number of steps sequentially.
@@ -53,13 +54,13 @@ public abstract class Sequence extends J
             }
         } else {
             SynchChannel r = newChannel(SynchChannel.class);
-            object(new SynchChannelListener(r) {
-                private static final long serialVersionUID = 
-6999108928780639603L;
-
+            object(new ReceiveProcess<SynchChannel, Synch>(r, new Synch() {
                 public void ret() {
                     ++_current;
                     instance(Sequence.this);
                 }
+            }) {
+                private static final long serialVersionUID = 
-6999108928780639603L;
             });
             instance(doStep(_current, r));
         }

Modified: 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java?rev=1431886&r1=1431885&r2=1431886&view=diff
==============================================================================
--- 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
 (original)
+++ 
ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java
 Fri Jan 11 05:02:21 2013
@@ -19,8 +19,9 @@
 package org.apache.ode.jacob.examples.synch;
 
 import org.apache.ode.jacob.JacobRunnable;
+import org.apache.ode.jacob.ReceiveProcess;
+import org.apache.ode.jacob.Synch;
 import org.apache.ode.jacob.SynchChannel;
-import org.apache.ode.jacob.SynchChannelListener;
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
 import org.apache.ode.jacob.vpu.JacobVPU;
 
@@ -59,18 +60,18 @@ public class SynchPrinter {
         public void run() {
             final SynchPrintChannel p = newChannel(SynchPrintChannel.class);
             instance(new SystemPrinter(p));
-            object(new SynchChannelListener(p.print("1")) {
+            object(new ReceiveProcess<SynchChannel, Synch>(p.print("1"), new 
Synch() {
                 public void ret() {
-                    object(new SynchChannelListener(p.print("2")) {
+                    object(new ReceiveProcess<SynchChannel, 
Synch>(p.print("2"), new Synch() {
                         public void ret() {
-                            object(new SynchChannelListener(p.print("3")) {
+                            object(new ReceiveProcess<SynchChannel, 
Synch>(p.print("3"), new Synch() {
                                 public void ret() {
                                 }
-                            });
+                            }) {});
                         }
-                    });
+                    }) {});
                 }
-            });
+            }) {});
         }
     }
 
@@ -82,5 +83,4 @@ public class SynchPrinter {
             // run
         }
     }
-
 }


Reply via email to