Author: hadrian
Date: Fri Jan 18 14:48:11 2013
New Revision: 1435167
URL: http://svn.apache.org/viewvc?rev=1435167&view=rev
Log:
ODE-987. Add convient method for creating listeners
Modified:
ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ProcessUtil.java
ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.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/synch/SynchPrinter.java
Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ProcessUtil.java
URL:
http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ProcessUtil.java?rev=1435167&r1=1435166&r2=1435167&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ProcessUtil.java
(original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ProcessUtil.java Fri Jan
18 14:48:11 2013
@@ -36,4 +36,14 @@ public final class ProcessUtil {
throw new IllegalArgumentException("Invalid proxy type: "
+ channel == null ? "<null>" : channel.getClass().toString());
}
+
+ @SuppressWarnings("serial")
+ public static <T extends Channel> ChannelListener receive(T proxy, T
listener) {
+ // TODO: NOTE: this *only* works when the listnere doesn't need to be
Serialiazble really
+ // because we cannot declare a staic serialVersionUID like this
+ // once we fix serialization, this can be simplified significantly via
a dsl
+ return new ReceiveProcess<T>(proxy, listener) {
+ // private static final long serialVersionUID =
1024137371118887935L;
+ };
+ }
}
Modified: 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=1435167&r1=1435166&r2=1435167&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java
(original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ReceiveProcess.java Fri
Jan 18 14:48:11 2013
@@ -25,16 +25,16 @@ import java.util.Set;
@SuppressWarnings("serial")
-public abstract class ReceiveProcess<R> extends ChannelListener {
+public abstract class ReceiveProcess<T extends Channel> extends
ChannelListener {
private transient Set<Method> _implementedMethods;
- private R receiver;
+ private T receiver;
- protected ReceiveProcess(Channel channel, R receiver) throws
IllegalStateException {
+ protected ReceiveProcess(T channel, T receiver) throws
IllegalStateException {
super(channel);
this.receiver = receiver;
}
- public R receiver() {
+ public T receiver() {
return receiver;
}
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=1435167&r1=1435166&r2=1435167&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 18 14:48:11 2013
@@ -29,6 +29,8 @@ import org.apache.ode.jacob.Val;
import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
import org.apache.ode.jacob.vpu.JacobVPU;
+import static org.apache.ode.jacob.ProcessUtil.receive;
+
public class JacobCellTest extends TestCase {
private static Object _val;
@@ -63,11 +65,11 @@ public class JacobCellTest extends TestC
Val ret = newChannel(Val.class, "val");
instance(new CELL_<String>(cell, "foo"));
- object(new ReceiveProcess<Val>(ret, new Val() {
+ object(receive(ret, new Val() {
public void val(Object retVal) {
_val = retVal;
}
- }) {});
+ }));
cell.read(ret);
}
}
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=1435167&r1=1435166&r2=1435167&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 18 14:48:11 2013
@@ -24,6 +24,8 @@ import org.apache.ode.jacob.Synch;
import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
import org.apache.ode.jacob.vpu.JacobVPU;
+import static org.apache.ode.jacob.ProcessUtil.receive;
+
/**
* Example JACOB process illustrating the use of {@link SynchPrint}
*
@@ -59,18 +61,18 @@ public class SynchPrinter {
public void run() {
final SynchPrint p = newChannel(SynchPrint.class);
instance(new SystemPrinter(p));
- object(new ReceiveProcess<Synch>(p.print("1"), new Synch() {
+ object(receive(p.print("1"), new Synch() {
public void ret() {
- object(new ReceiveProcess<Synch>(p.print("2"), new Synch()
{
+ object(receive(p.print("2"), new Synch() {
public void ret() {
- object(new ReceiveProcess<Synch>(p.print("3"), new
Synch() {
+ object(receive(p.print("3"), new Synch() {
public void ret() {
}
- }) {});
+ }));
}
- }) {});
+ }));
}
- }) {});
+ }));
}
}