From e14b0ef8851932cb06f1ab60a2b6a948d977c345 Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Sun, 28 Jun 2015 13:30:18 +0200 Subject: [PATCH] changed package structure for distributor and merger --- .../java/teetime/framework/AbstractPort.java | 6 +++--- .../stage/basic/distributor/Distributor.java | 2 ++ .../distributor/dynamic/DynamicDistributor.java | 4 ++-- .../{ => strategy}/CloneStrategy.java | 10 ++++------ .../{ => strategy}/CopyByReferenceStrategy.java | 2 +- .../{ => strategy}/IDistributorStrategy.java | 2 +- .../{ => strategy}/RoundRobinStrategy.java | 3 ++- .../{ => strategy}/RoundRobinStrategy2.java | 3 ++- .../java/teetime/stage/basic/merger/Merger.java | 2 ++ .../basic/merger/dynamic/DynamicMerger.java | 2 +- .../BusyWaitingRoundRobinStrategy.java | 3 ++- .../merger/{ => strategy}/IMergerStrategy.java | 3 ++- .../{ => strategy}/RoundRobinStrategy.java | 3 ++- .../java/teetime/stage/io/EveryXthPrinter.java | 2 +- .../java/teetime/framework/TraversorTest.java | 2 +- .../basic/distributor/DistributorTest.java | 17 +++++++++++++---- .../teetime/stage/basic/merger/MergerTest.java | 2 ++ .../basic/merger/dynamic/DynamicMergerTest.java | 2 +- 18 files changed, 44 insertions(+), 26 deletions(-) rename src/main/java/teetime/stage/basic/distributor/{ => strategy}/CloneStrategy.java (92%) rename src/main/java/teetime/stage/basic/distributor/{ => strategy}/CopyByReferenceStrategy.java (96%) rename src/main/java/teetime/stage/basic/distributor/{ => strategy}/IDistributorStrategy.java (95%) rename src/main/java/teetime/stage/basic/distributor/{ => strategy}/RoundRobinStrategy.java (94%) rename src/main/java/teetime/stage/basic/distributor/{ => strategy}/RoundRobinStrategy2.java (95%) rename src/main/java/teetime/stage/basic/merger/{ => strategy}/BusyWaitingRoundRobinStrategy.java (95%) rename src/main/java/teetime/stage/basic/merger/{ => strategy}/IMergerStrategy.java (91%) rename src/main/java/teetime/stage/basic/merger/{ => strategy}/RoundRobinStrategy.java (95%) diff --git a/src/main/java/teetime/framework/AbstractPort.java b/src/main/java/teetime/framework/AbstractPort.java index f6664b54..639f4bd0 100644 --- a/src/main/java/teetime/framework/AbstractPort.java +++ b/src/main/java/teetime/framework/AbstractPort.java @@ -31,11 +31,11 @@ public abstract class AbstractPort<T> { protected IPipe pipe; - public AbstractPort(final Class<T> type, final Stage owningStage, final String name) { + protected AbstractPort(final Class<T> type, final Stage owningStage, final String name) { super(); this.type = type; this.owningStage = owningStage; - this.name = (name != null) ? name : super.toString(); + this.name = name; } public Class<T> getType() { @@ -56,6 +56,6 @@ public abstract class AbstractPort<T> { @Override public String toString() { - return name; + return (name != null) ? name : super.toString(); } } diff --git a/src/main/java/teetime/stage/basic/distributor/Distributor.java b/src/main/java/teetime/stage/basic/distributor/Distributor.java index f780e247..db0ef439 100644 --- a/src/main/java/teetime/stage/basic/distributor/Distributor.java +++ b/src/main/java/teetime/stage/basic/distributor/Distributor.java @@ -17,6 +17,8 @@ package teetime.stage.basic.distributor; import teetime.framework.AbstractConsumerStage; import teetime.framework.OutputPort; +import teetime.stage.basic.distributor.strategy.IDistributorStrategy; +import teetime.stage.basic.distributor.strategy.RoundRobinStrategy2; /** * @author Christian Wulf diff --git a/src/main/java/teetime/stage/basic/distributor/dynamic/DynamicDistributor.java b/src/main/java/teetime/stage/basic/distributor/dynamic/DynamicDistributor.java index b068f4df..aecb9d15 100644 --- a/src/main/java/teetime/stage/basic/distributor/dynamic/DynamicDistributor.java +++ b/src/main/java/teetime/stage/basic/distributor/dynamic/DynamicDistributor.java @@ -8,8 +8,8 @@ import teetime.framework.OutputPortRemovedListener; import teetime.framework.Stage; import teetime.framework.signal.TerminatingSignal; import teetime.stage.basic.distributor.Distributor; -import teetime.stage.basic.distributor.IDistributorStrategy; -import teetime.stage.basic.distributor.RoundRobinStrategy2; +import teetime.stage.basic.distributor.strategy.IDistributorStrategy; +import teetime.stage.basic.distributor.strategy.RoundRobinStrategy2; import teetime.util.framework.port.PortAction; import teetime.util.framework.port.PortActionHelper; diff --git a/src/main/java/teetime/stage/basic/distributor/CloneStrategy.java b/src/main/java/teetime/stage/basic/distributor/strategy/CloneStrategy.java similarity index 92% rename from src/main/java/teetime/stage/basic/distributor/CloneStrategy.java rename to src/main/java/teetime/stage/basic/distributor/strategy/CloneStrategy.java index c41d4177..7f2a2b00 100644 --- a/src/main/java/teetime/stage/basic/distributor/CloneStrategy.java +++ b/src/main/java/teetime/stage/basic/distributor/strategy/CloneStrategy.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.distributor; +package teetime.stage.basic.distributor.strategy; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -57,13 +57,11 @@ public final class CloneStrategy implements IDistributorStrategy { return newInstance; } catch (InstantiationException e) { - throw new UnsupportedOperationException(); + throw new IllegalStateException(e); } catch (IllegalAccessException e) { - throw new UnsupportedOperationException(); - } catch (IllegalArgumentException e) { - throw new UnsupportedOperationException(); + throw new IllegalStateException(e); } catch (InvocationTargetException e) { - throw new UnsupportedOperationException(); + throw new IllegalStateException(e); } } diff --git a/src/main/java/teetime/stage/basic/distributor/CopyByReferenceStrategy.java b/src/main/java/teetime/stage/basic/distributor/strategy/CopyByReferenceStrategy.java similarity index 96% rename from src/main/java/teetime/stage/basic/distributor/CopyByReferenceStrategy.java rename to src/main/java/teetime/stage/basic/distributor/strategy/CopyByReferenceStrategy.java index 317a6eae..cb9d35b5 100644 --- a/src/main/java/teetime/stage/basic/distributor/CopyByReferenceStrategy.java +++ b/src/main/java/teetime/stage/basic/distributor/strategy/CopyByReferenceStrategy.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.distributor; +package teetime.stage.basic.distributor.strategy; import teetime.framework.OutputPort; import teetime.framework.Stage; diff --git a/src/main/java/teetime/stage/basic/distributor/IDistributorStrategy.java b/src/main/java/teetime/stage/basic/distributor/strategy/IDistributorStrategy.java similarity index 95% rename from src/main/java/teetime/stage/basic/distributor/IDistributorStrategy.java rename to src/main/java/teetime/stage/basic/distributor/strategy/IDistributorStrategy.java index 4e42dc15..00c76d2f 100644 --- a/src/main/java/teetime/stage/basic/distributor/IDistributorStrategy.java +++ b/src/main/java/teetime/stage/basic/distributor/strategy/IDistributorStrategy.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.distributor; +package teetime.stage.basic.distributor.strategy; import teetime.framework.OutputPort; import teetime.framework.OutputPortRemovedListener; diff --git a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy.java b/src/main/java/teetime/stage/basic/distributor/strategy/RoundRobinStrategy.java similarity index 94% rename from src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy.java rename to src/main/java/teetime/stage/basic/distributor/strategy/RoundRobinStrategy.java index 77dae925..f2038512 100644 --- a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy.java +++ b/src/main/java/teetime/stage/basic/distributor/strategy/RoundRobinStrategy.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.distributor; +package teetime.stage.basic.distributor.strategy; import teetime.framework.OutputPort; import teetime.framework.Stage; +import teetime.stage.basic.distributor.Distributor; /** * @author Nils Christian Ehmke diff --git a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java b/src/main/java/teetime/stage/basic/distributor/strategy/RoundRobinStrategy2.java similarity index 95% rename from src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java rename to src/main/java/teetime/stage/basic/distributor/strategy/RoundRobinStrategy2.java index 54103cb2..371ffa77 100644 --- a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java +++ b/src/main/java/teetime/stage/basic/distributor/strategy/RoundRobinStrategy2.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.distributor; +package teetime.stage.basic.distributor.strategy; import teetime.framework.OutputPort; import teetime.framework.Stage; +import teetime.stage.basic.distributor.Distributor; /** * @author Christian Wulf diff --git a/src/main/java/teetime/stage/basic/merger/Merger.java b/src/main/java/teetime/stage/basic/merger/Merger.java index 3e37f472..4ecec6a6 100644 --- a/src/main/java/teetime/stage/basic/merger/Merger.java +++ b/src/main/java/teetime/stage/basic/merger/Merger.java @@ -25,6 +25,8 @@ import teetime.framework.DynamicInputPort; import teetime.framework.InputPort; import teetime.framework.OutputPort; import teetime.framework.signal.ISignal; +import teetime.stage.basic.merger.strategy.IMergerStrategy; +import teetime.stage.basic.merger.strategy.RoundRobinStrategy; /** * diff --git a/src/main/java/teetime/stage/basic/merger/dynamic/DynamicMerger.java b/src/main/java/teetime/stage/basic/merger/dynamic/DynamicMerger.java index 4e70a825..b3121603 100644 --- a/src/main/java/teetime/stage/basic/merger/dynamic/DynamicMerger.java +++ b/src/main/java/teetime/stage/basic/merger/dynamic/DynamicMerger.java @@ -3,8 +3,8 @@ package teetime.stage.basic.merger.dynamic; import java.util.concurrent.BlockingQueue; import teetime.framework.DynamicInputPort; -import teetime.stage.basic.merger.IMergerStrategy; import teetime.stage.basic.merger.Merger; +import teetime.stage.basic.merger.strategy.IMergerStrategy; import teetime.util.framework.port.PortAction; import teetime.util.framework.port.PortActionHelper; diff --git a/src/main/java/teetime/stage/basic/merger/BusyWaitingRoundRobinStrategy.java b/src/main/java/teetime/stage/basic/merger/strategy/BusyWaitingRoundRobinStrategy.java similarity index 95% rename from src/main/java/teetime/stage/basic/merger/BusyWaitingRoundRobinStrategy.java rename to src/main/java/teetime/stage/basic/merger/strategy/BusyWaitingRoundRobinStrategy.java index 0f7dcba7..9e5df6cf 100644 --- a/src/main/java/teetime/stage/basic/merger/BusyWaitingRoundRobinStrategy.java +++ b/src/main/java/teetime/stage/basic/merger/strategy/BusyWaitingRoundRobinStrategy.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.merger; +package teetime.stage.basic.merger.strategy; import teetime.framework.InputPort; import teetime.framework.Stage; +import teetime.stage.basic.merger.Merger; /** * @author Christian Wulf diff --git a/src/main/java/teetime/stage/basic/merger/IMergerStrategy.java b/src/main/java/teetime/stage/basic/merger/strategy/IMergerStrategy.java similarity index 91% rename from src/main/java/teetime/stage/basic/merger/IMergerStrategy.java rename to src/main/java/teetime/stage/basic/merger/strategy/IMergerStrategy.java index 4fa1b4da..2de8659c 100644 --- a/src/main/java/teetime/stage/basic/merger/IMergerStrategy.java +++ b/src/main/java/teetime/stage/basic/merger/strategy/IMergerStrategy.java @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.merger; +package teetime.stage.basic.merger.strategy; import teetime.framework.InputPortRemovedListener; +import teetime.stage.basic.merger.Merger; /** * @author Nils Christian Ehmke diff --git a/src/main/java/teetime/stage/basic/merger/RoundRobinStrategy.java b/src/main/java/teetime/stage/basic/merger/strategy/RoundRobinStrategy.java similarity index 95% rename from src/main/java/teetime/stage/basic/merger/RoundRobinStrategy.java rename to src/main/java/teetime/stage/basic/merger/strategy/RoundRobinStrategy.java index d554e0ac..cfe269dd 100644 --- a/src/main/java/teetime/stage/basic/merger/RoundRobinStrategy.java +++ b/src/main/java/teetime/stage/basic/merger/strategy/RoundRobinStrategy.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package teetime.stage.basic.merger; +package teetime.stage.basic.merger.strategy; import teetime.framework.InputPort; import teetime.framework.Stage; +import teetime.stage.basic.merger.Merger; /** * @author Nils Christian Ehmke diff --git a/src/main/java/teetime/stage/io/EveryXthPrinter.java b/src/main/java/teetime/stage/io/EveryXthPrinter.java index 24eb08ec..6f38fbab 100644 --- a/src/main/java/teetime/stage/io/EveryXthPrinter.java +++ b/src/main/java/teetime/stage/io/EveryXthPrinter.java @@ -24,8 +24,8 @@ import teetime.framework.InputPort; import teetime.framework.OutputPort; import teetime.framework.Stage; import teetime.stage.EveryXthStage; -import teetime.stage.basic.distributor.CopyByReferenceStrategy; import teetime.stage.basic.distributor.Distributor; +import teetime.stage.basic.distributor.strategy.CopyByReferenceStrategy; public final class EveryXthPrinter<T> extends AbstractCompositeStage { diff --git a/src/test/java/teetime/framework/TraversorTest.java b/src/test/java/teetime/framework/TraversorTest.java index dcbb167a..95e118b1 100644 --- a/src/test/java/teetime/framework/TraversorTest.java +++ b/src/test/java/teetime/framework/TraversorTest.java @@ -29,7 +29,7 @@ import org.junit.Test; import teetime.stage.CountingMapMerger; import teetime.stage.InitialElementProducer; import teetime.stage.basic.distributor.Distributor; -import teetime.stage.basic.distributor.RoundRobinStrategy2; +import teetime.stage.basic.distributor.strategy.RoundRobinStrategy2; import teetime.stage.basic.merger.Merger; import teetime.stage.io.File2SeqOfWords; import teetime.stage.string.WordCounter; diff --git a/src/test/java/teetime/stage/basic/distributor/DistributorTest.java b/src/test/java/teetime/stage/basic/distributor/DistributorTest.java index 5e9381d8..3a8c235b 100644 --- a/src/test/java/teetime/stage/basic/distributor/DistributorTest.java +++ b/src/test/java/teetime/stage/basic/distributor/DistributorTest.java @@ -30,6 +30,11 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import teetime.stage.basic.distributor.strategy.CloneStrategy; +import teetime.stage.basic.distributor.strategy.CopyByReferenceStrategy; +import teetime.stage.basic.distributor.strategy.RoundRobinStrategy; +import teetime.stage.basic.distributor.strategy.RoundRobinStrategy2; + /** * @author Nils Christian Ehmke * @@ -136,19 +141,23 @@ public class DistributorTest { final List<SimpleBean> results = new ArrayList<SimpleBean>(); final SimpleBean originalBean = new SimpleBean(42); - test(distributor).and().send(originalBean).to(distributor.getInputPort()).and().receive(results).from(distributor.getNewOutputPort()).start(); + test(distributor).and() + .send(originalBean).to(distributor.getInputPort()).and() + .receive(results).from(distributor.getNewOutputPort()).start(); final SimpleBean clonedBean = results.get(0); assertThat(originalBean, is(not(clonedBean))); assertThat(originalBean.getValue(), is(clonedBean.getValue())); } - private static class SimpleBean { + // set to "public" to instantiate it via reflection + public static class SimpleBean { private int value; - @SuppressWarnings("unused") - public SimpleBean() {} + public SimpleBean() { + // necessary to instantiate it via reflection + } public SimpleBean(final int value) { this.setValue(value); diff --git a/src/test/java/teetime/stage/basic/merger/MergerTest.java b/src/test/java/teetime/stage/basic/merger/MergerTest.java index 6306cd1c..85d1375c 100644 --- a/src/test/java/teetime/stage/basic/merger/MergerTest.java +++ b/src/test/java/teetime/stage/basic/merger/MergerTest.java @@ -25,6 +25,8 @@ import java.util.List; import org.junit.Test; +import teetime.stage.basic.merger.strategy.RoundRobinStrategy; + /** * @author Nils Christian Ehmke * diff --git a/src/test/java/teetime/stage/basic/merger/dynamic/DynamicMergerTest.java b/src/test/java/teetime/stage/basic/merger/dynamic/DynamicMergerTest.java index ee7dbf57..1af3b563 100644 --- a/src/test/java/teetime/stage/basic/merger/dynamic/DynamicMergerTest.java +++ b/src/test/java/teetime/stage/basic/merger/dynamic/DynamicMergerTest.java @@ -16,7 +16,7 @@ import teetime.framework.RunnableProducerStage; import teetime.framework.exceptionHandling.TerminatingExceptionListenerFactory; import teetime.stage.CollectorSink; import teetime.stage.InitialElementProducer; -import teetime.stage.basic.merger.BusyWaitingRoundRobinStrategy; +import teetime.stage.basic.merger.strategy.BusyWaitingRoundRobinStrategy; import teetime.util.framework.port.PortAction; public class DynamicMergerTest { -- GitLab