diff --git a/src/main/java/teetime/framework/A3PipeInstantiation.java b/src/main/java/teetime/framework/A3PipeInstantiation.java index c1103fda09ead8ddd1c65f5b35324081ba7a6654..31a694d9ad6c7c4bd1e8e713c5e426602c72ea11 100644 --- a/src/main/java/teetime/framework/A3PipeInstantiation.java +++ b/src/main/java/teetime/framework/A3PipeInstantiation.java @@ -35,7 +35,8 @@ import teetime.framework.pipe.UnboundedSpScPipeFactory; */ class A3PipeInstantiation implements ITraverserVisitor { - private static final Logger LOGGER = LoggerFactory.getLogger(Execution.class); + private static final Logger LOGGER = LoggerFactory.getLogger(A3PipeInstantiation.class); + private static final IPipeFactory interBoundedThreadPipeFactory = new SpScPipeFactory(); private static final IPipeFactory interUnboundedThreadPipeFactory = new UnboundedSpScPipeFactory(); private static final IPipeFactory intraThreadPipeFactory = new SingleElementPipeFactory(); @@ -72,12 +73,21 @@ class A3PipeInstantiation implements ITraverserVisitor { // inter if (pipe.capacity() != 0) { interBoundedThreadPipeFactory.create(pipe.getSourcePort(), pipe.getTargetPort(), pipe.capacity()); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Connected (bounded) " + pipe.getSourcePort() + " and " + pipe.getTargetPort()); + } } else { interUnboundedThreadPipeFactory.create(pipe.getSourcePort(), pipe.getTargetPort(), 4); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Connected (unbounded) " + pipe.getSourcePort() + " and " + pipe.getTargetPort()); + } } } else { // normal or reflexive pipe => intra intraThreadPipeFactory.create(pipe.getSourcePort(), pipe.getTargetPort(), 4); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Connected (unsynch) " + pipe.getSourcePort() + " and " + pipe.getTargetPort()); + } } } diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java index 6a6769cae34e0e2bdad803326a9bddcedfefa4dd..6496217823a2f07bbff3fe2f16c83472b803db13 100644 --- a/src/main/java/teetime/framework/AbstractStage.java +++ b/src/main/java/teetime/framework/AbstractStage.java @@ -91,7 +91,9 @@ public abstract class AbstractStage extends Stage { private void changeState(final StageState newState) { currentState = newState; - logger.trace(newState.toString()); + if (logger.isTraceEnabled()) { + logger.trace(newState.toString()); + } } @Override diff --git a/src/main/java/teetime/framework/InputPort.java b/src/main/java/teetime/framework/InputPort.java index a11035a31c38955dde678e29dedcc40a28838c05..d4409bb173d5c282510c0886842f70e954867ee2 100644 --- a/src/main/java/teetime/framework/InputPort.java +++ b/src/main/java/teetime/framework/InputPort.java @@ -24,7 +24,7 @@ package teetime.framework; * * @since 1.0 */ -public class InputPort<T> extends AbstractPort<T> { +public final class InputPort<T> extends AbstractPort<T> { InputPort(final Class<T> type, final Stage owningStage, final String portName) { super(type, owningStage, portName); diff --git a/src/main/java/teetime/framework/OutputPort.java b/src/main/java/teetime/framework/OutputPort.java index 7bdb677d051222714f339b8674ea6194cec3fe57..0f2db809a9c3edd66a1c6d07b478247cfce4fe94 100644 --- a/src/main/java/teetime/framework/OutputPort.java +++ b/src/main/java/teetime/framework/OutputPort.java @@ -28,7 +28,7 @@ import teetime.framework.signal.TerminatingSignal; * * @since 1.0 */ -public class OutputPort<T> extends AbstractPort<T> { +public final class OutputPort<T> extends AbstractPort<T> { OutputPort(final Class<T> type, final Stage owningStage, final String portName) { super(type, owningStage, portName); diff --git a/src/main/java/teetime/stage/InitialElementProducer.java b/src/main/java/teetime/stage/InitialElementProducer.java index d29d675ead1e5f47c71db3d2a43faba931dfd455..33a6822e13de4bf6b66941f2e3943d3cf6a42383 100644 --- a/src/main/java/teetime/stage/InitialElementProducer.java +++ b/src/main/java/teetime/stage/InitialElementProducer.java @@ -19,24 +19,19 @@ import java.util.Arrays; import teetime.framework.AbstractProducerStage; -public final class InitialElementProducer<T> extends AbstractProducerStage<T> { +public class InitialElementProducer<T> extends AbstractProducerStage<T> { - private Iterable<T> elements; + private final Iterable<T> elements; public InitialElementProducer(final T... elements) { - this.elements = Arrays.asList(elements); + this(Arrays.asList(elements)); } public InitialElementProducer(final Iterable<T> elements) { - this.elements = elements; - } - - @Override - public void onStarting() throws Exception { if (elements == null) { throw new IllegalArgumentException("The given iterable must not be null"); } - super.onStarting(); + this.elements = elements; } @Override @@ -47,12 +42,4 @@ public final class InitialElementProducer<T> extends AbstractProducerStage<T> { this.terminate(); } - public void setIter(final T... elements) { - this.elements = Arrays.asList(elements); - } - - public void setIter(final Iterable<T> elements) { - this.elements = elements; - } - } diff --git a/src/test/java/teetime/stage/InitialElementProducerTest.java b/src/test/java/teetime/stage/InitialElementProducerTest.java index ad9e03b4bff52807ebac4d2419001606af0149ae..9c96b14f42da3c9f46bcb22fdefd59b950e36159 100644 --- a/src/test/java/teetime/stage/InitialElementProducerTest.java +++ b/src/test/java/teetime/stage/InitialElementProducerTest.java @@ -31,45 +31,37 @@ import org.junit.Test; */ public class InitialElementProducerTest { - private InitialElementProducer<Integer> producer; - - // @Before - public void initializeProducer() { - producer = new InitialElementProducer<Integer>(); - } - @Test public void producerShouldByDefaultSendNothing() { - initializeProducer(); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start(); assertThat(results, is(empty())); } - @Test - public void testSetIterArray() { - initializeProducer(); - producer.setIter(new Integer[] { 1, 2, 3 }); - List<Integer> results = new ArrayList<Integer>(); - - test(producer).and().receive(results).from(producer.getOutputPort()).start(); - assertThat(results, contains(1, 2, 3)); - } - - @Test - public void testSetIterVarargs() { - initializeProducer(); - producer.setIter(1, 2, 3); - List<Integer> results = new ArrayList<Integer>(); - - test(producer).and().receive(results).from(producer.getOutputPort()).start(); - assertThat(results, contains(1, 2, 3)); - } + // @Test + // public void testSetIterArray() { + // InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 }); + // + // List<Integer> results = new ArrayList<Integer>(); + // + // test(producer).and().receive(results).from(producer.getOutputPort()).start(); + // assertThat(results, contains(1, 2, 3)); + // } + // + // @Test + // public void testSetIterVarargs() { + // InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(1, 2, 3); + // List<Integer> results = new ArrayList<Integer>(); + // + // test(producer).and().receive(results).from(producer.getOutputPort()).start(); + // assertThat(results, contains(1, 2, 3)); + // } @Test public void instantiateWithArray() { - producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 }); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 }); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start(); @@ -78,7 +70,7 @@ public class InitialElementProducerTest { @Test public void instantiateWithVarargs() { - producer = new InitialElementProducer<Integer>(1, 2, 3); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(1, 2, 3); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start(); @@ -91,7 +83,7 @@ public class InitialElementProducerTest { testIntegers.add(1); testIntegers.add(2); testIntegers.add(3); - producer = new InitialElementProducer<Integer>(testIntegers); + InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(testIntegers); List<Integer> results = new ArrayList<Integer>(); test(producer).and().receive(results).from(producer.getOutputPort()).start();