Refactor/rename JacobObject to a more appropriate Process, as it maps semantically to a Pi process
Project: http://git-wip-us.apache.org/repos/asf/ode-jacob/repo Commit: http://git-wip-us.apache.org/repos/asf/ode-jacob/commit/57a06e2d Tree: http://git-wip-us.apache.org/repos/asf/ode-jacob/tree/57a06e2d Diff: http://git-wip-us.apache.org/repos/asf/ode-jacob/diff/57a06e2d Branch: refs/heads/master Commit: 57a06e2d81ebca530fb0f8634006246290135eb3 Parents: 96d08fb Author: Hadrian Zbarcea <[email protected]> Authored: Mon Jan 13 14:58:43 2014 -0500 Committer: Hadrian Zbarcea <[email protected]> Committed: Mon Jan 13 14:58:43 2014 -0500 ---------------------------------------------------------------------- .../java/org/apache/ode/jacob/JacobObject.java | 34 -------------------- src/main/java/org/apache/ode/jacob/Process.java | 34 ++++++++++++++++++++ .../apache/ode/jacob/examples/cell/CELL_.java | 7 ++-- .../ode/jacob/examples/cell/JacobCellTest.java | 11 ++++--- .../ode/jacob/examples/eratosthenes/Sieve.java | 17 ++++++---- .../jacob/examples/helloworld/HelloWorld.java | 33 ++++++++++--------- .../ode/jacob/examples/sequence/Sequence.java | 10 ++++-- .../ode/jacob/examples/synch/SynchPrinter.java | 14 +++++--- 8 files changed, 88 insertions(+), 72 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/main/java/org/apache/ode/jacob/JacobObject.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/ode/jacob/JacobObject.java b/src/main/java/org/apache/ode/jacob/JacobObject.java deleted file mode 100644 index 5dab505..0000000 --- a/src/main/java/org/apache/ode/jacob/JacobObject.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.io.Serializable; - -/** - * Base class for constructs which rely on a Java method body to represent some - * aspect of the process. - */ -@SuppressWarnings("serial") -public abstract class JacobObject implements Serializable { - - public String toString() { - return "<JacobObject:" + getClass().getSimpleName() + ">"; - } - -} http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/main/java/org/apache/ode/jacob/Process.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/ode/jacob/Process.java b/src/main/java/org/apache/ode/jacob/Process.java new file mode 100644 index 0000000..ea00f49 --- /dev/null +++ b/src/main/java/org/apache/ode/jacob/Process.java @@ -0,0 +1,34 @@ +/* + * 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.io.Serializable; + +/** + * Base class for constructs which rely on a Java method body to represent some + * aspect of the process. + */ +@SuppressWarnings("serial") +public abstract class Process implements Runnable, Serializable { + + public String toString() { + return "<Process:" + getClass().getSimpleName() + ">"; + } + +} http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java b/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java index 1370562..a30f2b1 100644 --- a/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java +++ b/src/test/java/org/apache/ode/jacob/examples/cell/CELL_.java @@ -18,7 +18,7 @@ */ package org.apache.ode.jacob.examples.cell; -import org.apache.ode.jacob.JacobObject; +import org.apache.ode.jacob.Process; import org.apache.ode.jacob.oo.ReceiveProcess; import org.apache.ode.jacob.oo.Val; @@ -31,7 +31,7 @@ import static org.apache.ode.jacob.Jacob.*; * Cell(self, val) = self ? [ read(r) = { Cell(self, val) | r ! val(val) } & write(newVal) = { Cell(self, newVal) } ] * </code> */ -public class CELL_<T> extends JacobObject implements Runnable { +public class CELL_<T> extends Process { private static final long serialVersionUID = 1550566086202728251L; private Cell _self; @@ -43,7 +43,8 @@ public class CELL_<T> extends JacobObject implements Runnable { _val = val; } - public void run() { + @SuppressWarnings("serial") + public void run() { // INSTANTIATION{Cell(run,val)} // ==> run ? [ read(r)={...} & write(newVal)={...} ] object(new ReceiveProcess().setChannel(_self).setReceiver(new Cell() { http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java b/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java index a6381bb..7027c3b 100644 --- a/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java +++ b/src/test/java/org/apache/ode/jacob/examples/cell/JacobCellTest.java @@ -18,19 +18,22 @@ */ package org.apache.ode.jacob.examples.cell; -import static org.apache.ode.jacob.oo.ProcessUtil.receive; -import static org.apache.ode.jacob.Jacob.*; import java.io.ByteArrayOutputStream; import java.io.IOException; import junit.framework.TestCase; -import org.apache.ode.jacob.JacobObject; +import org.apache.ode.jacob.Process; import org.apache.ode.jacob.oo.Val; import org.apache.ode.jacob.vpu.ExecutionQueueImpl; import org.apache.ode.jacob.vpu.JacobVPU; +import static org.apache.ode.jacob.Jacob.instance; +import static org.apache.ode.jacob.Jacob.newChannel; +import static org.apache.ode.jacob.Jacob.object; +import static org.apache.ode.jacob.oo.ProcessUtil.receive; + public class JacobCellTest extends TestCase { private static Object _val; @@ -59,7 +62,7 @@ public class JacobCellTest extends TestCase { } @SuppressWarnings("serial") - static class CellTest1 extends JacobObject implements Runnable { + static class CellTest1 extends Process { public void run() { Cell cell = newChannel(Cell.class, "cell"); Val ret = newChannel(Val.class, "val"); http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java b/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java index 034b399..d189814 100644 --- a/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java +++ b/src/test/java/org/apache/ode/jacob/examples/eratosthenes/Sieve.java @@ -18,14 +18,17 @@ */ package org.apache.ode.jacob.examples.eratosthenes; -import static org.apache.ode.jacob.Jacob.*; -import org.apache.ode.jacob.JacobObject; +import org.apache.ode.jacob.Process; import org.apache.ode.jacob.oo.ReceiveProcess; import org.apache.ode.jacob.oo.Synch; import org.apache.ode.jacob.vpu.ExecutionQueueImpl; import org.apache.ode.jacob.vpu.JacobVPU; +import static org.apache.ode.jacob.Jacob.instance; +import static org.apache.ode.jacob.Jacob.newChannel; +import static org.apache.ode.jacob.Jacob.object; + /** * Sieve of Eratosthenes prime number generator. * This class represents the following process term: @@ -38,7 +41,7 @@ import org.apache.ode.jacob.vpu.JacobVPU; * * @author Maciej Szefler <a href="mailto:[email protected]">mbs</a> */ -public class Sieve extends JacobObject implements Runnable { +public class Sieve extends Process { private static final long serialVersionUID = -1303509567096202776L; private static int _cnt = 0; @@ -60,7 +63,7 @@ public class Sieve extends JacobObject implements Runnable { * Counter(out, n) := out.val(n) | Counter(out, n+1) * </em></pre> */ - private static class Counter extends JacobObject implements Runnable { + private static class Counter extends Process { private static final long serialVersionUID = 4739323750438991003L; private NaturalNumberStream _out; @@ -92,7 +95,7 @@ public class Sieve extends JacobObject implements Runnable { * * */ - private static final class Head extends JacobObject implements Runnable { + private static final class Head extends Process { private static final long serialVersionUID = 1791641314141082728L; NaturalNumberStream _in; @@ -121,7 +124,7 @@ public class Sieve extends JacobObject implements Runnable { } } - private static final class Print extends JacobObject implements Runnable { + private static final class Print extends Process { private static final long serialVersionUID = -3134193737519487672L; private NaturalNumberStream _in; @@ -148,7 +151,7 @@ public class Sieve extends JacobObject implements Runnable { * ! in ? [val(n)={ if(n mod prime <> 0) out.val(n) } * </em></prime> */ - private static class PrimeFilter extends JacobObject implements Runnable { + private static class PrimeFilter extends Process { private static final long serialVersionUID = 1569523200422202448L; private int _prime; http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java b/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java index 2253699..448f804 100644 --- a/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java +++ b/src/test/java/org/apache/ode/jacob/examples/helloworld/HelloWorld.java @@ -18,13 +18,6 @@ */ package org.apache.ode.jacob.examples.helloworld; -import static org.apache.ode.jacob.Jacob.instance; -import static org.apache.ode.jacob.Jacob.newChannel; -import static org.apache.ode.jacob.Jacob.newCommChannel; -import static org.apache.ode.jacob.Jacob.object; -import static org.apache.ode.jacob.Jacob.sendMessage; -import static org.apache.ode.jacob.Jacob.subscribe; - import java.util.Collections; import java.util.List; @@ -32,9 +25,9 @@ import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.ode.jacob.ChannelRef; -import org.apache.ode.jacob.JacobObject; import org.apache.ode.jacob.Message; import org.apache.ode.jacob.MessageListener; +import org.apache.ode.jacob.Process; import org.apache.ode.jacob.examples.sequence.Sequence; import org.apache.ode.jacob.oo.Channel; import org.apache.ode.jacob.oo.ReceiveProcess; @@ -50,6 +43,14 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.dataformat.smile.SmileFactory; +import static org.apache.ode.jacob.Jacob.instance; +import static org.apache.ode.jacob.Jacob.newChannel; +import static org.apache.ode.jacob.Jacob.newCommChannel; +import static org.apache.ode.jacob.Jacob.object; +import static org.apache.ode.jacob.Jacob.sendMessage; +import static org.apache.ode.jacob.Jacob.subscribe; + + /** * Simple Hello World example to showcase different * features and approaches of the Jacob API. @@ -60,7 +61,7 @@ import com.fasterxml.jackson.dataformat.smile.SmileFactory; * */ @SuppressWarnings("serial") -public class HelloWorld extends JacobObject implements Runnable { +public class HelloWorld extends Process { public static interface Callback<T, R extends Channel> extends Channel { @@ -68,7 +69,7 @@ public class HelloWorld extends JacobObject implements Runnable { } - static class ReliablePrinterProcess extends JacobObject implements Runnable { + static class ReliablePrinterProcess extends Process { private Callback<String, Synch> in; @JsonCreator @@ -88,7 +89,7 @@ public class HelloWorld extends JacobObject implements Runnable { } } - static class ReliableStringEmitterProcess extends JacobObject implements Runnable { + static class ReliableStringEmitterProcess extends Process { private String str; private Callback<String, Synch> to; @@ -118,7 +119,7 @@ public class HelloWorld extends JacobObject implements Runnable { } } - static class PrinterProcess extends JacobObject implements Runnable { + static class PrinterProcess extends Process { private Val _in; @JsonCreator @@ -137,7 +138,7 @@ public class HelloWorld extends JacobObject implements Runnable { } } - static class StringEmitterProcess extends JacobObject implements Runnable { + static class StringEmitterProcess extends Process { private String str; private Val to; @@ -152,7 +153,7 @@ public class HelloWorld extends JacobObject implements Runnable { } } - static class ForwarderProcess extends JacobObject implements Runnable { + static class ForwarderProcess extends Process { private Val in; private Val out; @@ -265,7 +266,7 @@ public class HelloWorld extends JacobObject implements Runnable { } } - static class StringEmitterRunnable extends JacobObject implements Runnable { + static class StringEmitterRunnable extends Process { private String str; private ChannelRef to; @@ -299,7 +300,7 @@ public class HelloWorld extends JacobObject implements Runnable { return new SequenceItemEmitter(greetings[step], done, out); } - static class SequenceItemEmitter extends JacobObject implements Runnable { + static class SequenceItemEmitter extends Process { private final String string; private final Synch done; private final Val out; http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java b/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java index 659cf9e..d626394 100644 --- a/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java +++ b/src/test/java/org/apache/ode/jacob/examples/sequence/Sequence.java @@ -18,20 +18,24 @@ */ package org.apache.ode.jacob.examples.sequence; -import static org.apache.ode.jacob.Jacob.*; -import org.apache.ode.jacob.JacobObject; +import org.apache.ode.jacob.Process; import org.apache.ode.jacob.oo.ReceiveProcess; import org.apache.ode.jacob.oo.Synch; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import static org.apache.ode.jacob.Jacob.instance; +import static org.apache.ode.jacob.Jacob.newChannel; +import static org.apache.ode.jacob.Jacob.object; + + /** * Abstract process that executes a number of steps sequentially. */ @SuppressWarnings("serial") -public abstract class Sequence extends JacobObject implements Runnable { +public abstract class Sequence extends Process { private final SequenceData data = new SequenceData(); /** http://git-wip-us.apache.org/repos/asf/ode-jacob/blob/57a06e2d/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java b/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java index bdaf878..22de017 100644 --- a/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java +++ b/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrinter.java @@ -18,15 +18,19 @@ */ package org.apache.ode.jacob.examples.synch; -import static org.apache.ode.jacob.oo.ProcessUtil.receive; -import static org.apache.ode.jacob.Jacob.*; -import org.apache.ode.jacob.JacobObject; +import org.apache.ode.jacob.Process; import org.apache.ode.jacob.oo.ReceiveProcess; import org.apache.ode.jacob.oo.Synch; import org.apache.ode.jacob.vpu.ExecutionQueueImpl; import org.apache.ode.jacob.vpu.JacobVPU; +import static org.apache.ode.jacob.oo.ProcessUtil.receive; +import static org.apache.ode.jacob.Jacob.instance; +import static org.apache.ode.jacob.Jacob.newChannel; +import static org.apache.ode.jacob.Jacob.object; + + /** * Example JACOB process illustrating the use of {@link SynchPrint} * @@ -34,7 +38,7 @@ import org.apache.ode.jacob.vpu.JacobVPU; */ public class SynchPrinter { - public static final class SystemPrinter extends JacobObject implements Runnable { + public static final class SystemPrinter extends Process { private static final long serialVersionUID = -8516348116865575605L; private SynchPrint _self; @@ -54,7 +58,7 @@ public class SynchPrinter { } } - public static final class Tester extends JacobObject implements Runnable { + public static final class Tester extends Process { private static final long serialVersionUID = 7899682832271627464L; public void run() {
