diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index 6dc3e14cabc13e4623aac2e9c1f21fecf27b7cc6..ed595de60d4a551a37086133e79a61a103be5591 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -43,6 +43,8 @@ import teetime.util.Pair; * To start the analysis {@link #executeBlocking()} needs to be executed. * This class will automatically create threads and join them without any further commitment. * + * @author Christian Wulf, Nelson Tavares de Sousa + * * @param <T> * the type of the {@link AnalysisConfiguration} */ diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java index bcf85239d542a27b232a4fe9879bfcf59e61c7e8..f9b9e4ef17824c93de73606c796faa31b599e18d 100644 --- a/src/main/java/teetime/framework/AnalysisConfiguration.java +++ b/src/main/java/teetime/framework/AnalysisConfiguration.java @@ -61,7 +61,11 @@ public abstract class AnalysisConfiguration { * A arbitrary stage, which will be added to the configuration and executed in a thread. */ protected void addThreadableStage(final Stage stage) { - this.threadableStageJobs.add(stage); + if (stage instanceof AbstractCompositeStage) { + this.threadableStageJobs.add(((AbstractCompositeStage) stage).getFirstStage()); + } else { + this.threadableStageJobs.add(stage); + } } /** diff --git a/src/test/java/teetime/framework/TraversorTest.java b/src/test/java/teetime/framework/TraversorTest.java index eaf4be71872531692654ccd7a4295b6232a823c5..f447dc204c2e3551b9d08ac44d482d0d6d9c7bd2 100644 --- a/src/test/java/teetime/framework/TraversorTest.java +++ b/src/test/java/teetime/framework/TraversorTest.java @@ -15,7 +15,10 @@ */ package teetime.framework; -import static org.junit.Assert.assertTrue; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; import java.io.File; import java.util.HashSet; @@ -39,12 +42,14 @@ public class TraversorTest { @Test public void traverse() { TestConfiguration tc = new TestConfiguration(); + new Analysis<TestConfiguration>(tc); traversor.traverse(tc.init); Set<Stage> comparingStages = new HashSet<Stage>(); comparingStages.add(tc.init); comparingStages.add(tc.f2b); comparingStages.add(tc.distributor); - assertTrue(comparingStages.equals(traversor.getVisitedStage())); + assertThat(tc.distributor.getOwningThread(), is(not(tc.distributor.getOutputPorts()[0].pipe.getTargetPort().getOwningStage().getOwningThread()))); + assertEquals(comparingStages, traversor.getVisitedStage()); } // WordCounterConfiguration