diff --git a/src/main/java/teetime/framework/pipe/IPipeFactory.java b/src/main/java/teetime/framework/pipe/IPipeFactory.java index 48627dbac5369b2ec6d7fa7cb1bf849f333c1955..8ff43cae918cbad003e0282a9af5e794cdf41c06 100644 --- a/src/main/java/teetime/framework/pipe/IPipeFactory.java +++ b/src/main/java/teetime/framework/pipe/IPipeFactory.java @@ -2,8 +2,8 @@ package teetime.framework.pipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; public interface IPipeFactory { diff --git a/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipeFactory.java b/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipeFactory.java index 76f17f5d48014dbb4a1a66e6eadb80eee92c7ca4..9142b80e11d7cbcfe4cd057f857840bf167ae9ab 100644 --- a/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipeFactory.java +++ b/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipeFactory.java @@ -2,8 +2,8 @@ package teetime.framework.pipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; public class OrderedGrowableArrayPipeFactory implements IPipeFactory { diff --git a/src/main/java/teetime/framework/pipe/PipeFactory.java b/src/main/java/teetime/framework/pipe/PipeFactoryRegistry.java similarity index 93% rename from src/main/java/teetime/framework/pipe/PipeFactory.java rename to src/main/java/teetime/framework/pipe/PipeFactoryRegistry.java index fffb32b100b40aeebdab6f62f386695c66af36c9..2817b034be35f965bdc93254ae719d92b60f7dfc 100644 --- a/src/main/java/teetime/framework/pipe/PipeFactory.java +++ b/src/main/java/teetime/framework/pipe/PipeFactoryRegistry.java @@ -8,9 +8,9 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class PipeFactory { +public class PipeFactoryRegistry { - private static final Logger LOGGER = LoggerFactory.getLogger(PipeFactory.class); + private static final Logger LOGGER = LoggerFactory.getLogger(PipeFactoryRegistry.class); public enum ThreadCommunication { INTER, INTRA @@ -30,9 +30,9 @@ public class PipeFactory { private final Map<String, IPipeFactory> pipeFactories = new HashMap<String, IPipeFactory>(); - public static PipeFactory INSTANCE = new PipeFactory(); + public static PipeFactoryRegistry INSTANCE = new PipeFactoryRegistry(); - private PipeFactory() { + private PipeFactoryRegistry() { try { List<IPipeFactory> pipeFactories = PipeFactoryLoader.loadFromFile("conf/pipe-factories.conf"); for (IPipeFactory pipeFactory : pipeFactories) { diff --git a/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java b/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java index ee8d3cf499fd6b11456fd43198895afa41cac0f2..b51000fab0dc391fcb2c627cc3089e3508a5044d 100644 --- a/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java +++ b/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java @@ -2,8 +2,8 @@ package teetime.framework.pipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; public class SingleElementPipeFactory implements IPipeFactory { diff --git a/src/main/java/teetime/framework/pipe/SpScPipeFactory.java b/src/main/java/teetime/framework/pipe/SpScPipeFactory.java index 25331aa398d0955c2bfd7d34eef94ce4fd924743..745e79715025cb5e4d5ad6690f1d6ba7c5265147 100644 --- a/src/main/java/teetime/framework/pipe/SpScPipeFactory.java +++ b/src/main/java/teetime/framework/pipe/SpScPipeFactory.java @@ -2,8 +2,8 @@ package teetime.framework.pipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; public class SpScPipeFactory implements IPipeFactory { diff --git a/src/main/java/teetime/framework/pipe/UnorderedGrowablePipeFactory.java b/src/main/java/teetime/framework/pipe/UnorderedGrowablePipeFactory.java index e18e896d1d4903cf61407fdb70e75cb6a1ba9211..219d95d796c6d688dbf09e8356c283bd24ac75c3 100644 --- a/src/main/java/teetime/framework/pipe/UnorderedGrowablePipeFactory.java +++ b/src/main/java/teetime/framework/pipe/UnorderedGrowablePipeFactory.java @@ -2,8 +2,8 @@ package teetime.framework.pipe; import teetime.framework.InputPort; import teetime.framework.OutputPort; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; public class UnorderedGrowablePipeFactory implements IPipeFactory { diff --git a/src/main/java/teetime/stage/kieker/Dir2RecordsFilter.java b/src/main/java/teetime/stage/kieker/Dir2RecordsFilter.java index eaf453f8e418c71c69d41a9497cb7b3eb9216cd9..fb413551aa03961a549e6d2f14091c7b40702fd4 100644 --- a/src/main/java/teetime/stage/kieker/Dir2RecordsFilter.java +++ b/src/main/java/teetime/stage/kieker/Dir2RecordsFilter.java @@ -20,10 +20,10 @@ import java.io.File; import teetime.framework.InputPort; import teetime.framework.OutputPort; import teetime.framework.Pipeline; -import teetime.framework.pipe.PipeFactory; +import teetime.framework.pipe.PipeFactoryRegistry; import teetime.framework.pipe.SingleElementPipe; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; import teetime.stage.FileExtensionSwitch; import teetime.stage.basic.merger.Merger; import teetime.stage.io.Directory2FilesFilter; @@ -44,7 +44,7 @@ import kieker.common.util.filesystem.FSUtil; */ public class Dir2RecordsFilter extends Pipeline<ClassNameRegistryCreationFilter, Merger<IMonitoringRecord>> { - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; private ClassNameRegistryRepository classNameRegistryRepository; /** diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java index 3b32e2bdadd7c333e92dda19187ec7e673eb8e3c..18b24367366c357d69c8ab9ca43dfc90dfe8d596 100644 --- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java +++ b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java @@ -22,9 +22,9 @@ import teetime.framework.HeadStage; import teetime.framework.OldAnalysis; import teetime.framework.RunnableStage; import teetime.framework.pipe.IPipeFactory; -import teetime.framework.pipe.PipeFactory; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; import teetime.stage.CollectorSink; import teetime.stage.NoopFilter; import teetime.stage.ObjectProducer; @@ -45,7 +45,7 @@ public class MethodCallThroughputAnalysis14 extends OldAnalysis { private int numNoopFilters; private List<TimestampObject> timestampObjects; private Runnable runnable; - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; @Override public void init() { diff --git a/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java b/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java index c1954504e7a0a135138dceffa148ffcb4dd030a1..bb17e0fb66a5df954cffba32bc14589b55890248 100644 --- a/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java +++ b/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java @@ -25,7 +25,7 @@ import teetime.framework.RunnableStage; import teetime.framework.StageWithPort; import teetime.framework.pipe.DummyPipe; import teetime.framework.pipe.IPipe; -import teetime.framework.pipe.PipeFactory; +import teetime.framework.pipe.PipeFactoryRegistry; import teetime.framework.pipe.RelayTestPipe; import teetime.framework.pipe.UnorderedGrowablePipe; import teetime.framework.signal.TerminatingSignal; @@ -54,7 +54,7 @@ public class MethodCallThroughputAnalysis17 extends OldAnalysis { private ConstructorClosure<TimestampObject> inputObjectCreator; private int numNoopFilters; - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; private final List<List<TimestampObject>> timestampObjectsList = new LinkedList<List<TimestampObject>>(); private Thread producerThread; diff --git a/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java b/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java index 348fca73b12cf185fb00ccdb2075cd2a4f3dcc78..33e262c8eb21c5d879ffddbba8d6e0b4e56e11a7 100644 --- a/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java +++ b/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java @@ -2,15 +2,15 @@ package teetime.examples.loopStage; import teetime.framework.AnalysisConfiguration; import teetime.framework.pipe.IPipeFactory; -import teetime.framework.pipe.PipeFactory; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; import teetime.examples.loopStage.Countdown; public class LoopStageAnalysisConfiguration extends AnalysisConfiguration { - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; public LoopStageAnalysisConfiguration() { Countdown countdown = new Countdown(10); diff --git a/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java b/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java index cbcae8ca4682990a65859571749545dbec312cfc..e84ce2a1382202b1eb96cf41fdac2c1fa58201a6 100644 --- a/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java +++ b/src/performancetest/java/teetime/examples/recordReader/RecordReaderConfiguration.java @@ -21,9 +21,9 @@ import java.util.List; import teetime.framework.AnalysisConfiguration; import teetime.framework.HeadStage; -import teetime.framework.pipe.PipeFactory; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; import teetime.stage.CollectorSink; import teetime.stage.InitialElementProducer; import teetime.stage.kieker.Dir2RecordsFilter; @@ -39,7 +39,7 @@ import kieker.common.record.IMonitoringRecord; public class RecordReaderConfiguration extends AnalysisConfiguration { private final List<IMonitoringRecord> elementCollection = new LinkedList<IMonitoringRecord>(); - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; public RecordReaderConfiguration() { this.buildConfiguration(); diff --git a/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java b/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java index 3caa3cf553562ed30dc35d3da1c9450cfc752e6f..6b92dbf3c49e4bb7de1b08fc7a0ee7e1570463f9 100644 --- a/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java +++ b/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java @@ -9,9 +9,9 @@ import java.lang.reflect.InvocationTargetException; import org.junit.Test; import teetime.framework.pipe.IPipeFactory; -import teetime.framework.pipe.PipeFactory; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; import teetime.stage.ObjectProducer; import teetime.stage.PortTypeConfiguration; import teetime.stage.StartTimestampFilter; @@ -22,7 +22,7 @@ import teetime.util.TimestampObject; public class ConnectionTypeTest { - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; // tests for load-time validation diff --git a/src/test/java/teetime/examples/cipher/CipherConfiguration.java b/src/test/java/teetime/examples/cipher/CipherConfiguration.java index 54fef5a38c3c34bebeb528979a15fdd0c63e05cd..c34d4aac600e1719003732245a22b9ebcffc0057 100644 --- a/src/test/java/teetime/examples/cipher/CipherConfiguration.java +++ b/src/test/java/teetime/examples/cipher/CipherConfiguration.java @@ -3,20 +3,21 @@ package teetime.examples.cipher; import java.io.File; import teetime.framework.AnalysisConfiguration; -import teetime.framework.pipe.PipeFactory; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; import teetime.stage.CipherByteArray; +import teetime.stage.CipherByteArray.CipherMode; import teetime.stage.InitialElementProducer; import teetime.stage.ZipByteArray; -import teetime.stage.CipherByteArray.CipherMode; import teetime.stage.ZipByteArray.ZipMode; import teetime.stage.io.ByteArrayFileWriter; import teetime.stage.io.File2ByteArray; public class CipherConfiguration extends AnalysisConfiguration { - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private static final PipeFactoryRegistry pipeFactoryRegistry = PipeFactoryRegistry.INSTANCE; + private final File input, output; private final String password; @@ -33,17 +34,17 @@ public class CipherConfiguration extends AnalysisConfiguration { CipherByteArray decrypt = new CipherByteArray(this.password, CipherMode.DECRYPT); ByteArrayFileWriter writer = new ByteArrayFileWriter(output); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) + pipeFactoryRegistry.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(init.getOutputPort(), f2b.getInputPort()); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) + pipeFactoryRegistry.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(f2b.getOutputPort(), enc.getInputPort()); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) + pipeFactoryRegistry.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(enc.getOutputPort(), comp.getInputPort()); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) + pipeFactoryRegistry.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(comp.getOutputPort(), decomp.getInputPort()); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) + pipeFactoryRegistry.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(decomp.getOutputPort(), decrypt.getInputPort()); - this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) + pipeFactoryRegistry.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false) .create(decrypt.getOutputPort(), writer.getInputPort()); this.getFiniteProducerStages().add(init); diff --git a/src/test/java/teetime/examples/cipher/CipherTest.java b/src/test/java/teetime/examples/cipher/CipherTest.java index be4c3b50c4897cba43d39c65515a586505c6c0b4..2607b032da3e5ec0e603af35f28ed9d30214c5f9 100644 --- a/src/test/java/teetime/examples/cipher/CipherTest.java +++ b/src/test/java/teetime/examples/cipher/CipherTest.java @@ -13,21 +13,17 @@ import com.google.common.io.Files; public class CipherTest { - static String inputFile = "src/test/resources/data/input.txt"; - static String outputFile = "src/test/resources/data/output.txt"; - static String password = "Password"; - static long start; - long stop; - - static AnalysisConfiguration configuration = new CipherConfiguration(inputFile, outputFile, password); - - final static Analysis analysis = new Analysis(configuration); - @Test public void executeTest() throws IOException { + final String inputFile = "src/test/resources/data/input.txt"; + final String outputFile = "src/test/resources/data/output.txt"; + final String password = "Password"; + + AnalysisConfiguration configuration = new CipherConfiguration(inputFile, outputFile, password); + Analysis analysis = new Analysis(configuration); analysis.init(); - start = System.currentTimeMillis(); analysis.start(); + Assert.assertTrue(Files.equal(new File(inputFile), new File(outputFile))); } diff --git a/src/test/java/teetime/examples/tokenizer/TokenizerConfiguration.java b/src/test/java/teetime/examples/tokenizer/TokenizerConfiguration.java index 7ae1bb77ba066d10c8f0349c1d14b4bd400827ee..2d333cf8861ea37f4ab9be0b8713c577a6030da6 100644 --- a/src/test/java/teetime/examples/tokenizer/TokenizerConfiguration.java +++ b/src/test/java/teetime/examples/tokenizer/TokenizerConfiguration.java @@ -3,9 +3,9 @@ package teetime.examples.tokenizer; import java.io.File; import teetime.framework.AnalysisConfiguration; -import teetime.framework.pipe.PipeFactory; -import teetime.framework.pipe.PipeFactory.PipeOrdering; -import teetime.framework.pipe.PipeFactory.ThreadCommunication; +import teetime.framework.pipe.PipeFactoryRegistry; +import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering; +import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication; import teetime.stage.ByteArray2String; import teetime.stage.CipherByteArray; import teetime.stage.CipherByteArray.CipherMode; @@ -18,7 +18,7 @@ import teetime.stage.io.File2ByteArray; public class TokenizerConfiguration extends AnalysisConfiguration { - private final PipeFactory pipeFactory = PipeFactory.INSTANCE; + private final PipeFactoryRegistry pipeFactory = PipeFactoryRegistry.INSTANCE; private final File input; private final String password; private final TokenCounter counter;