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><compensate></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
}
}
-
}