From 8367aa2fc82e3fb732842d7a142eeaa4bfc35bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de> Date: Wed, 6 Apr 2016 13:39:09 +0200 Subject: [PATCH] dot writers now need a mapping object --- .../analysis/TraceAnalysisConfiguration.java | 12 ++++---- .../dot/AbstractDotFileWriterStage.java | 26 ---------------- .../export/dot/AbstractDotWriterStage.java | 23 -------------- .../graph/export/dot/DotFileWriterStage.java | 30 +++++++++++++++++++ .../graph/export/dot/DotWriterStage.java | 25 ++++++++++++++++ 5 files changed, 60 insertions(+), 56 deletions(-) delete mode 100644 src/main/java/kieker/analysis/graph/export/dot/AbstractDotFileWriterStage.java delete mode 100644 src/main/java/kieker/analysis/graph/export/dot/AbstractDotWriterStage.java create mode 100644 src/main/java/kieker/analysis/graph/export/dot/DotFileWriterStage.java create mode 100644 src/main/java/kieker/analysis/graph/export/dot/DotWriterStage.java diff --git a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java index f90996ae..26248069 100644 --- a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java +++ b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java @@ -12,6 +12,7 @@ import kieker.analysis.domain.AggregatedTrace; import kieker.analysis.domain.OperationCall; import kieker.analysis.domain.Trace; import kieker.analysis.graph.Graph; +import kieker.analysis.graph.export.dot.DotFileWriterStage; import kieker.analysis.graph.export.graphml.GraphMLFileWriterComposite; import kieker.analysis.stage.tracediagnosis.AllowedRecordsFilter; import kieker.analysis.stage.tracediagnosis.BeginEndOfMonitoringDetector; @@ -19,7 +20,6 @@ import kieker.analysis.stage.tracediagnosis.OperationCallHandlerComposite; import kieker.analysis.stage.tracediagnosis.ReadingComposite; import kieker.analysis.stage.tracediagnosis.TraceAggregationComposite; import kieker.analysis.stage.tracediagnosis.TraceReconstructionComposite; -import kieker.analysis.trace.graphoutput.DotGraphWriter; import kieker.analysis.trace.traversal.AggrTraceTraverserStage; import kieker.analysis.trace.traversal.TraceTraverserStage; import kieker.common.record.IMonitoringRecord; @@ -75,28 +75,26 @@ public class TraceAnalysisConfiguration extends Configuration { TraceTraverserStage traceTraverserStage = new TraceTraverserStage(); final Distributor<Graph> graphDistributor = new Distributor<>(new CopyByReferenceStrategy()); - // TODO create mapping object GraphMLFileWriterComposite graphMLFileWriterComposite = new GraphMLFileWriterComposite(graphFilesOutputDir); - DotGraphWriter dotGraphWriter = new DotGraphWriter(graphFilesOutputDir); + DotFileWriterStage dotFileWriterStage = new DotFileWriterStage(graphFilesOutputDir); super.connectPorts(distributor.getNewOutputPort(), traceTraverserStage.getInputPort()); super.connectPorts(traceTraverserStage.getOutputPort(), graphDistributor.getInputPort()); super.connectPorts(graphDistributor.getNewOutputPort(), graphMLFileWriterComposite.getInputPort()); - // super.connectPorts(graphDistributor.getNewOutputPort(), dotGraphWriter.getInputPort()); + super.connectPorts(graphDistributor.getNewOutputPort(), dotFileWriterStage.getInputPort()); final Distributor<AggregatedTrace> aggregatedTraceDistributor = new Distributor<>(new CopyByReferenceStrategy()); AggrTraceTraverserStage aggrTraceTraverser = new AggrTraceTraverserStage(); final Distributor<Graph> graphDistributor2 = new Distributor<>(new CopyByReferenceStrategy()); - // TODO create mapping object GraphMLFileWriterComposite graphMLFileWriterComposite2 = new GraphMLFileWriterComposite(graphFilesOutputDir); - // DotGraphWriter dotGraphWriter2 = new DotGraphWriter(graphFilesOutputDir); + DotFileWriterStage dotFileWriterStage2 = new DotFileWriterStage(graphFilesOutputDir); super.connectPorts(aggregation.getOutputPort(), aggregatedTraceDistributor.getInputPort()); super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), aggrTraceTraverser.getInputPort()); super.connectPorts(aggrTraceTraverser.getOutputPort(), graphDistributor2.getInputPort()); super.connectPorts(graphDistributor2.getNewOutputPort(), graphMLFileWriterComposite2.getInputPort()); - // super.connectPorts(graphDistributor2.getNewOutputPort(), dotGraphWriter2.getInputPort()); + super.connectPorts(graphDistributor2.getNewOutputPort(), dotFileWriterStage2.getInputPort()); // DependencyCreatorStage dependencyCreatorStage = new DependencyCreatorStage(); // DependencyStatisticsDecoratorStage dependencyStatisticsDecoratorStage = new DependencyStatisticsDecoratorStage(); diff --git a/src/main/java/kieker/analysis/graph/export/dot/AbstractDotFileWriterStage.java b/src/main/java/kieker/analysis/graph/export/dot/AbstractDotFileWriterStage.java deleted file mode 100644 index 2368b3c8..00000000 --- a/src/main/java/kieker/analysis/graph/export/dot/AbstractDotFileWriterStage.java +++ /dev/null @@ -1,26 +0,0 @@ -package kieker.analysis.graph.export.dot; - -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; - -import kieker.analysis.graph.Graph; - -public abstract class AbstractDotFileWriterStage extends AbstractDotWriterStage { - - public AbstractDotFileWriterStage() { - super(); - } - - @Override - protected Writer getWriter(final Graph graph) { - try { - return new FileWriter(getFileName(graph)); - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - - protected abstract String getFileName(final Graph graph); - -} diff --git a/src/main/java/kieker/analysis/graph/export/dot/AbstractDotWriterStage.java b/src/main/java/kieker/analysis/graph/export/dot/AbstractDotWriterStage.java deleted file mode 100644 index 37a206bd..00000000 --- a/src/main/java/kieker/analysis/graph/export/dot/AbstractDotWriterStage.java +++ /dev/null @@ -1,23 +0,0 @@ -package kieker.analysis.graph.export.dot; - -import java.io.Writer; - -import kieker.analysis.graph.Graph; - -import teetime.framework.AbstractConsumerStage; - -public abstract class AbstractDotWriterStage extends AbstractConsumerStage<Graph> { - - public AbstractDotWriterStage() { - super(); - } - - @Override - protected final void execute(final Graph graph) { - DotExporter dotExporter = new DotExporter(graph, getWriter(graph)); - dotExporter.transform(); - } - - protected abstract Writer getWriter(final Graph graph); - -} diff --git a/src/main/java/kieker/analysis/graph/export/dot/DotFileWriterStage.java b/src/main/java/kieker/analysis/graph/export/dot/DotFileWriterStage.java new file mode 100644 index 00000000..e82d1432 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/export/dot/DotFileWriterStage.java @@ -0,0 +1,30 @@ +package kieker.analysis.graph.export.dot; + +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; + +import kieker.analysis.graph.Graph; +import kieker.analysis.graph.mapping.GraphMapper; +import kieker.analysis.graph.mapping.SimpleFileNameMapper; + +public class DotFileWriterStage extends DotWriterStage { + + public DotFileWriterStage(final GraphMapper<String> fileNameMapper) { + super(new GraphMapper<Writer>() { + @Override + public Writer map(final Graph graph) { + try { + return new FileWriter(fileNameMapper.map(graph)); + } catch (IOException e) { + throw new IllegalArgumentException(e); + } + } + }); + } + + public DotFileWriterStage(final String outputDirectory) { + this(new SimpleFileNameMapper(outputDirectory, "dot")); + } + +} diff --git a/src/main/java/kieker/analysis/graph/export/dot/DotWriterStage.java b/src/main/java/kieker/analysis/graph/export/dot/DotWriterStage.java new file mode 100644 index 00000000..e9e8f447 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/export/dot/DotWriterStage.java @@ -0,0 +1,25 @@ +package kieker.analysis.graph.export.dot; + +import java.io.Writer; + +import kieker.analysis.graph.Graph; +import kieker.analysis.graph.mapping.GraphMapper; + +import teetime.framework.AbstractConsumerStage; + +public class DotWriterStage extends AbstractConsumerStage<Graph> { + + private final GraphMapper<Writer> writerMapper; + + public DotWriterStage(final GraphMapper<Writer> writerMapper) { + super(); + this.writerMapper = writerMapper; + } + + @Override + protected final void execute(final Graph graph) { + DotExporter dotExporter = new DotExporter(graph, writerMapper.map(graph)); + dotExporter.transform(); + } + +} -- GitLab