Skip to content
Snippets Groups Projects
Commit 7b099195 authored by Nelson Tavares de Sousa's avatar Nelson Tavares de Sousa
Browse files

Merge remote-tracking branch 'origin/master' into reportUnconnectedPorts

Conflicts:
	src/main/java/teetime/framework/A3PipeInstantiation.java
parents 3b78bd60 bdd068dc
Branches
Tags
No related merge requests found
......@@ -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());
}
}
}
......
......@@ -91,8 +91,10 @@ public abstract class AbstractStage extends Stage {
private void changeState(final StageState newState) {
currentState = newState;
if (logger.isTraceEnabled()) {
logger.trace(newState.toString());
}
}
@Override
public void onValidating(final List<InvalidPortConnection> invalidPortConnections) {
......
......@@ -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);
......
......@@ -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);
......
......@@ -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;
}
}
......@@ -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();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment