diff --git a/src/main/java/teetime/framework/AbstractBasicStage.java b/src/main/java/teetime/framework/AbstractBasicStage.java new file mode 100644 index 0000000000000000000000000000000000000000..0bbcb5a56ab23230eaa44988ede9d7dad5d537fe --- /dev/null +++ b/src/main/java/teetime/framework/AbstractBasicStage.java @@ -0,0 +1,16 @@ +package teetime.framework; + +import teetime.framework.signal.ISignal; + +public abstract class AbstractBasicStage implements IStage { + + protected abstract void executeWithPorts(); + + protected abstract void onSignal(ISignal signal, InputPort<?> inputPort); + + protected abstract TerminationStrategy getTerminationStrategy(); + + protected abstract void terminate(); + + protected abstract boolean shouldBeTerminated(); +} diff --git a/src/main/java/teetime/framework/pipe/AbstractInterThreadPipe.java b/src/main/java/teetime/framework/AbstractInterThreadPipe.java similarity index 80% rename from src/main/java/teetime/framework/pipe/AbstractInterThreadPipe.java rename to src/main/java/teetime/framework/AbstractInterThreadPipe.java index e1504baad4e789fee4d8cee541153fa64167e4ea..872f965ea66e3c371b4fbde9da8571bc083400a4 100644 --- a/src/main/java/teetime/framework/pipe/AbstractInterThreadPipe.java +++ b/src/main/java/teetime/framework/AbstractInterThreadPipe.java @@ -1,4 +1,4 @@ -package teetime.framework.pipe; +package teetime.framework; import java.util.Queue; @@ -7,15 +7,14 @@ import org.jctools.queues.spec.ConcurrentQueueSpec; import org.jctools.queues.spec.Ordering; import org.jctools.queues.spec.Preference; -import teetime.framework.InputPort; -import teetime.framework.OutputPort; +import teetime.framework.pipe.AbstractPipe; import teetime.framework.signal.ISignal; public abstract class AbstractInterThreadPipe extends AbstractPipe { private final Queue<ISignal> signalQueue = QueueFactory.newQueue(new ConcurrentQueueSpec(1, 1, 0, Ordering.FIFO, Preference.THROUGHPUT)); - <T> AbstractInterThreadPipe(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) { + protected <T> AbstractInterThreadPipe(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) { super(sourcePort, targetPort); } diff --git a/src/main/java/teetime/framework/pipe/AbstractIntraThreadPipe.java b/src/main/java/teetime/framework/AbstractIntraThreadPipe.java similarity index 69% rename from src/main/java/teetime/framework/pipe/AbstractIntraThreadPipe.java rename to src/main/java/teetime/framework/AbstractIntraThreadPipe.java index b593b105add067a832a0e28dfc63a3816d730068..dffefffc2e8024f1be72fb1e8d51be6fe6318df7 100644 --- a/src/main/java/teetime/framework/pipe/AbstractIntraThreadPipe.java +++ b/src/main/java/teetime/framework/AbstractIntraThreadPipe.java @@ -1,13 +1,11 @@ -package teetime.framework.pipe; +package teetime.framework; -import teetime.framework.InputPort; -import teetime.framework.OutputPort; +import teetime.framework.pipe.AbstractPipe; import teetime.framework.signal.ISignal; public abstract class AbstractIntraThreadPipe extends AbstractPipe { - - <T> AbstractIntraThreadPipe(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) { + protected <T> AbstractIntraThreadPipe(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) { super(sourcePort, targetPort); } diff --git a/src/main/java/teetime/framework/AbstractProducerStage.java b/src/main/java/teetime/framework/AbstractProducerStage.java index 7918c922da305a933b8d6cfbee3a2a56c98eaee3..e34f6705c6fb7728a6e68f4a16405d477a2aa15e 100644 --- a/src/main/java/teetime/framework/AbstractProducerStage.java +++ b/src/main/java/teetime/framework/AbstractProducerStage.java @@ -9,7 +9,7 @@ package teetime.framework; * the type of the default output port * */ -public abstract class AbstractProducerStage<O> extends AbstractStage implements IStage { +public abstract class AbstractProducerStage<O> extends AbstractStage { protected final OutputPort<O> outputPort = this.createOutputPort(); diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java index 1ccec6406871ab77fc28c72e46176691b24c55b3..06d80bfe8c44642113599e12b4e487f5f245be20 100644 --- a/src/main/java/teetime/framework/AbstractStage.java +++ b/src/main/java/teetime/framework/AbstractStage.java @@ -14,7 +14,7 @@ import teetime.framework.pipe.IPipe; import teetime.framework.signal.ISignal; import teetime.framework.validation.InvalidPortConnection; -public abstract class AbstractStage implements IStage { +public abstract class AbstractStage extends AbstractBasicStage { private final String id; /** diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index 2e115cdc1feaf8bf0ebe58fd05ebe1024511fbf1..286db07a5da6d43605f55562ffd67654477eff98 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -28,8 +28,8 @@ public class Analysis implements UncaughtExceptionHandler { } public void init() { - final List<IStage> threadableStageJobs = this.configuration.getThreadableStageJobs(); - for (IStage stage : threadableStageJobs) { + final List<AbstractBasicStage> threadableStageJobs = this.configuration.getThreadableStageJobs(); + for (AbstractBasicStage stage : threadableStageJobs) { final Thread thread = new Thread(new RunnableStage(stage)); switch (stage.getTerminationStrategy()) { case BY_SIGNAL: diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java index 3850987eb23573d05ae4781ff4eeb1ff24187e6f..81f41e1a953ff0796a644f50adb45048f4fab89e 100644 --- a/src/main/java/teetime/framework/AnalysisConfiguration.java +++ b/src/main/java/teetime/framework/AnalysisConfiguration.java @@ -8,15 +8,15 @@ import teetime.framework.pipe.PipeFactoryRegistry; public class AnalysisConfiguration { protected static final PipeFactoryRegistry PIPE_FACTORY_REGISTRY = PipeFactoryRegistry.INSTANCE; - private final List<IStage> threadableStageJobs = new LinkedList<IStage>(); + private final List<AbstractBasicStage> threadableStageJobs = new LinkedList<AbstractBasicStage>(); public AnalysisConfiguration() {} - List<IStage> getThreadableStageJobs() { + List<AbstractBasicStage> getThreadableStageJobs() { return this.threadableStageJobs; } - public void addThreadableStage(final IStage stage) { + public void addThreadableStage(final AbstractBasicStage stage) { this.threadableStageJobs.add(stage); } diff --git a/src/main/java/teetime/framework/IStage.java b/src/main/java/teetime/framework/IStage.java index 91fd7393da37758cdb1261f94efd3d99c7aa3664..a9033bba0caf9f08b247035fa717ee94dd098c53 100644 --- a/src/main/java/teetime/framework/IStage.java +++ b/src/main/java/teetime/framework/IStage.java @@ -2,25 +2,21 @@ package teetime.framework; import java.util.List; -import teetime.framework.signal.ISignal; import teetime.framework.validation.InvalidPortConnection; -public interface IStage extends ITerminable { +@Deprecated +public interface IStage { - String getId(); + public String getId(); - void executeWithPorts(); + public IStage getParentStage(); - IStage getParentStage(); - - void setParentStage(IStage parentStage, int index); - - void onSignal(ISignal signal, InputPort<?> inputPort); + public void setParentStage(IStage parentStage, int index); /** * * @param invalidPortConnections * <i>(Passed as parameter for performance reasons)</i> */ - void validateOutputPorts(List<InvalidPortConnection> invalidPortConnections); + public void validateOutputPorts(List<InvalidPortConnection> invalidPortConnections); } diff --git a/src/main/java/teetime/framework/ITerminable.java b/src/main/java/teetime/framework/ITerminable.java deleted file mode 100644 index 175db53931772336b8e6e4a40060673b605082e3..0000000000000000000000000000000000000000 --- a/src/main/java/teetime/framework/ITerminable.java +++ /dev/null @@ -1,11 +0,0 @@ -package teetime.framework; - -interface ITerminable { - - TerminationStrategy getTerminationStrategy(); - - void terminate(); - - boolean shouldBeTerminated(); - -} diff --git a/src/main/java/teetime/framework/InputPort.java b/src/main/java/teetime/framework/InputPort.java index ccdd19d9bc378b6863290eb0e3a62e081c893c7c..942f06f76afc56decf83c5113331cbfff0640edb 100644 --- a/src/main/java/teetime/framework/InputPort.java +++ b/src/main/java/teetime/framework/InputPort.java @@ -4,9 +4,9 @@ import teetime.framework.pipe.IPipe; public class InputPort<T> extends AbstractPort<T> { - private final IStage owningStage; + private final AbstractBasicStage owningStage; - InputPort(final IStage owningStage) { + InputPort(final AbstractBasicStage owningStage) { super(); this.owningStage = owningStage; } @@ -33,7 +33,7 @@ public class InputPort<T> extends AbstractPort<T> { this.pipe = pipe; } - public IStage getOwningStage() { + public AbstractBasicStage getOwningStage() { return this.owningStage; } diff --git a/src/main/java/teetime/framework/RunnableStage.java b/src/main/java/teetime/framework/RunnableStage.java index b0d234bf016123f6c59d0a0d02ca5f068f022c74..89796f9020836da664edf609c52e7916c7a7d4a4 100644 --- a/src/main/java/teetime/framework/RunnableStage.java +++ b/src/main/java/teetime/framework/RunnableStage.java @@ -8,14 +8,13 @@ import teetime.framework.signal.TerminatingSignal; import teetime.framework.signal.ValidatingSignal; import teetime.framework.validation.AnalysisNotValidException; -@SuppressWarnings("PMD.BeanMembersShouldSerialize") public class RunnableStage implements Runnable { - private final IStage stage; + private final AbstractBasicStage stage; private final Logger logger; // NOPMD private boolean validationEnabled; - public RunnableStage(final IStage stage) { + public RunnableStage(final AbstractBasicStage stage) { this.stage = stage; this.logger = LoggerFactory.getLogger(stage.getClass()); } @@ -47,9 +46,9 @@ public class RunnableStage implements Runnable { this.logger.error("Terminating thread due to the following exception: ", e); throw e; } // catch (RuntimeException e) { - // this.logger.error("Terminating thread due to the following exception: ", e); - // throw e; - // } + // this.logger.error("Terminating thread due to the following exception: ", e); + // throw e; + // } this.logger.debug("Finished runnable stage. (" + this.stage.getId() + ")"); } diff --git a/src/main/java/teetime/framework/pipe/AbstractPipe.java b/src/main/java/teetime/framework/pipe/AbstractPipe.java index d3382dbc54193d873869dd41a338edc3dd852151..cc28ecf90584eb6807682d0dac1d320cf9e04c85 100644 --- a/src/main/java/teetime/framework/pipe/AbstractPipe.java +++ b/src/main/java/teetime/framework/pipe/AbstractPipe.java @@ -1,6 +1,6 @@ package teetime.framework.pipe; -import teetime.framework.IStage; +import teetime.framework.AbstractBasicStage; import teetime.framework.InputPort; import teetime.framework.OutputPort; @@ -13,7 +13,7 @@ public abstract class AbstractPipe implements IPipe { * this.getPipe().getTargetPort().getOwningStage() * </pre> */ - protected IStage cachedTargetStage; + protected AbstractBasicStage cachedTargetStage; private InputPort<?> targetPort; diff --git a/src/main/java/teetime/framework/pipe/CommittablePipe.java b/src/main/java/teetime/framework/pipe/CommittablePipe.java index 41cea9411884e8b3e5d796f38bc0b5290c3d579a..f425bbb45d4e541cee6c186b33e67389f502f733 100644 --- a/src/main/java/teetime/framework/pipe/CommittablePipe.java +++ b/src/main/java/teetime/framework/pipe/CommittablePipe.java @@ -1,5 +1,6 @@ package teetime.framework.pipe; +import teetime.framework.AbstractIntraThreadPipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; import teetime.util.list.CommittableResizableArrayQueue; diff --git a/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java b/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java index eefa35be748a691469bb60562a37bcd23a5c8a46..d5db551a3dc5c8eafd1e8299d1152f6d7ea5b7a5 100644 --- a/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java +++ b/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java @@ -1,5 +1,6 @@ package teetime.framework.pipe; +import teetime.framework.AbstractIntraThreadPipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; import teetime.util.concurrent.workstealing.CircularArray; diff --git a/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java b/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java index 23b3d43f83a2507f7ec1c15998fa1ff90641987a..8901664518c63466d4f759e171e1d8afdb28967c 100644 --- a/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java +++ b/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java @@ -2,6 +2,7 @@ package teetime.framework.pipe; import java.util.LinkedList; +import teetime.framework.AbstractIntraThreadPipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; diff --git a/src/main/java/teetime/framework/pipe/RelayTestPipe.java b/src/main/java/teetime/framework/pipe/RelayTestPipe.java index 3a7bc13c99fa68e1660efcd5a4d034fe50988c82..ff09a32a51931f62ddb2772ea765668c4cb2d551 100644 --- a/src/main/java/teetime/framework/pipe/RelayTestPipe.java +++ b/src/main/java/teetime/framework/pipe/RelayTestPipe.java @@ -1,5 +1,6 @@ package teetime.framework.pipe; +import teetime.framework.AbstractInterThreadPipe; import teetime.util.ConstructorClosure; public final class RelayTestPipe<T> extends AbstractInterThreadPipe { diff --git a/src/main/java/teetime/framework/pipe/SingleElementPipe.java b/src/main/java/teetime/framework/pipe/SingleElementPipe.java index f71d3957c09f96baee6574dcb07c31568de4b009..cc519a2b4402e1049af59ce1d249b04f6563f918 100644 --- a/src/main/java/teetime/framework/pipe/SingleElementPipe.java +++ b/src/main/java/teetime/framework/pipe/SingleElementPipe.java @@ -1,5 +1,6 @@ package teetime.framework.pipe; +import teetime.framework.AbstractIntraThreadPipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; diff --git a/src/main/java/teetime/framework/pipe/SpScPipe.java b/src/main/java/teetime/framework/pipe/SpScPipe.java index 4941e4a7dca7c10e16019332d9f73fb801fd5199..8facbf44a72c4aa96087f8fe2372d54a6c7d7a7f 100644 --- a/src/main/java/teetime/framework/pipe/SpScPipe.java +++ b/src/main/java/teetime/framework/pipe/SpScPipe.java @@ -7,6 +7,7 @@ import org.jctools.queues.spec.ConcurrentQueueSpec; import org.jctools.queues.spec.Ordering; import org.jctools.queues.spec.Preference; +import teetime.framework.AbstractInterThreadPipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; diff --git a/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java b/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java index 76075d7c64ab20805ad540bfa3a0225610b2b7c4..6fb7e9a12b0c2487cf49f34ee972af63a46c9958 100644 --- a/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java +++ b/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java @@ -1,5 +1,6 @@ package teetime.framework.pipe; +import teetime.framework.AbstractIntraThreadPipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; diff --git a/src/main/java/teetime/stage/Relay.java b/src/main/java/teetime/stage/Relay.java index 0d898b3d4bd305bbe8b08f7bfe5cbf77cf3ecf3f..e42808be295ba2541d658cedd67c99d04312b8ef 100644 --- a/src/main/java/teetime/stage/Relay.java +++ b/src/main/java/teetime/stage/Relay.java @@ -1,8 +1,8 @@ package teetime.stage; +import teetime.framework.AbstractInterThreadPipe; import teetime.framework.InputPort; import teetime.framework.AbstractProducerStage; -import teetime.framework.pipe.AbstractInterThreadPipe; import teetime.framework.signal.TerminatingSignal; public class Relay<T> extends AbstractProducerStage<T> { diff --git a/src/main/java/teetime/stage/io/File2ByteArray.java b/src/main/java/teetime/stage/io/File2ByteArray.java index 647b42ae7731219cf97bf732064c0238e94c675d..17509009179ea1a7a93ef52caddcc1265d1be8cd 100644 --- a/src/main/java/teetime/stage/io/File2ByteArray.java +++ b/src/main/java/teetime/stage/io/File2ByteArray.java @@ -5,11 +5,10 @@ import java.io.IOException; import teetime.framework.AbstractConsumerStage; import teetime.framework.OutputPort; -import teetime.framework.IStage; import com.google.common.io.Files; -public class File2ByteArray extends AbstractConsumerStage<File> implements IStage { +public class File2ByteArray extends AbstractConsumerStage<File> { private final OutputPort<byte[]> outputPort = this.createOutputPort(); diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java b/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java index dfdbfbd6df8aba627cc2e18fd5a95b6a0c01d50e..18476d0ca6e46e8d11f02e7f158d098a0f107c3d 100644 --- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java +++ b/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java @@ -17,9 +17,9 @@ package teetime.examples.experiment09; import java.util.List; +import teetime.framework.AbstractBasicStage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; -import teetime.framework.IStage; import teetime.framework.pipe.CommittablePipe; import teetime.stage.CollectorSink; import teetime.stage.NoopFilter; @@ -43,7 +43,7 @@ public class MethodCallThroughputAnalysis9 { private Runnable runnable; public void init() { - IStage pipeline = this.buildPipeline(); + AbstractBasicStage pipeline = this.buildPipeline(); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java b/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java index d95d9f923bd66ce2326846865c9d9dde9369bf62..e1598de80e5a1f79ebc05e5866869eeb7df1b260 100644 --- a/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java +++ b/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java @@ -17,9 +17,9 @@ package teetime.examples.experiment11; import java.util.List; +import teetime.framework.AbstractBasicStage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; -import teetime.framework.IStage; import teetime.framework.pipe.UnorderedGrowablePipe; import teetime.stage.CollectorSink; import teetime.stage.NoopFilter; @@ -43,7 +43,7 @@ public class MethodCallThroughputAnalysis11 { private Runnable runnable; public void init() { - IStage pipeline = this.buildPipeline(this.numInputObjects, this.inputObjectCreator); + AbstractBasicStage pipeline = this.buildPipeline(this.numInputObjects, this.inputObjectCreator); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java index 31f374d8dca46b0a9726ff18923438089faf214d..1546da21c2a9975f14037d0167cab39cc5ebe1e8 100644 --- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java +++ b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java @@ -17,9 +17,9 @@ package teetime.examples.experiment14; import java.util.List; +import teetime.framework.AbstractBasicStage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; -import teetime.framework.IStage; import teetime.framework.pipe.IPipeFactory; import teetime.framework.pipe.PipeFactoryRegistry; import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; @@ -47,7 +47,7 @@ public class MethodCallThroughputAnalysis14 { private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; public void init() { - IStage pipeline = this.buildPipeline(); + AbstractBasicStage pipeline = this.buildPipeline(); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java b/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java index 738579aa22a0dffe2477c60b949f514a5890c805..059611424d23726eb525705674d84dd06ac68db8 100644 --- a/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java +++ b/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java @@ -17,9 +17,9 @@ package teetime.examples.experiment15; import java.util.List; +import teetime.framework.AbstractBasicStage; import teetime.framework.OldHeadPipeline; import teetime.framework.RunnableStage; -import teetime.framework.IStage; import teetime.framework.pipe.OrderedGrowableArrayPipe; import teetime.framework.pipe.SingleElementPipe; import teetime.framework.pipe.SpScPipe; @@ -58,7 +58,7 @@ public class MethodCallThroughputAnalysis15 { OldHeadPipeline<Clock, Sink<Long>> clockPipeline = this.buildClockPipeline(); this.clockRunnable = new RunnableStage(clockPipeline); - IStage pipeline = this.buildPipeline(this.clock); + AbstractBasicStage pipeline = this.buildPipeline(this.clock); this.runnable = new RunnableStage(pipeline); } diff --git a/src/performancetest/java/teetime/framework/OldHeadPipeline.java b/src/performancetest/java/teetime/framework/OldHeadPipeline.java index 8f3418483e5c6e66ea7db42cc10cb55e59790c1d..976baa44dcb4c436e7cb2a3fec705da7ca6317ab 100644 --- a/src/performancetest/java/teetime/framework/OldHeadPipeline.java +++ b/src/performancetest/java/teetime/framework/OldHeadPipeline.java @@ -1,7 +1,7 @@ package teetime.framework; @Deprecated -public class OldHeadPipeline<FirstStage extends IStage, LastStage extends IStage> extends OldPipeline<FirstStage, LastStage> implements IStage { +public class OldHeadPipeline<FirstStage extends AbstractBasicStage, LastStage extends IStage> extends OldPipeline<FirstStage, LastStage> implements IStage { public OldHeadPipeline() {} diff --git a/src/performancetest/java/teetime/framework/OldPipeline.java b/src/performancetest/java/teetime/framework/OldPipeline.java index 98f846d6b7d91465ee3909bf99a7ac0364f72781..e883cfc92495a9ed562a18c55b59b7804331ce1b 100644 --- a/src/performancetest/java/teetime/framework/OldPipeline.java +++ b/src/performancetest/java/teetime/framework/OldPipeline.java @@ -6,7 +6,7 @@ import teetime.framework.signal.ISignal; import teetime.framework.validation.InvalidPortConnection; @Deprecated -public class OldPipeline<FirstStage extends IStage, LastStage extends IStage> implements IStage { +public class OldPipeline<FirstStage extends AbstractBasicStage, LastStage extends IStage> extends AbstractBasicStage { protected FirstStage firstStage; protected LastStage lastStage; diff --git a/src/test/java/teetime/framework/pipe/SpScPipeTest.java b/src/test/java/teetime/framework/pipe/SpScPipeTest.java index b5f7a1281afa1c0a950dca112e742df61cfd22bb..20d366d6aea0079c67138c645e373f0f5a4f71e2 100644 --- a/src/test/java/teetime/framework/pipe/SpScPipeTest.java +++ b/src/test/java/teetime/framework/pipe/SpScPipeTest.java @@ -6,6 +6,7 @@ import java.util.List; import org.junit.Assert; import org.junit.Test; +import teetime.framework.AbstractInterThreadPipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; import teetime.framework.signal.ISignal;