Skip to content
Snippets Groups Projects
Commit 8367aa2f authored by Sören Henning's avatar Sören Henning
Browse files

dot writers now need a mapping object

parent 3c591482
No related branches found
No related tags found
2 merge requests!17Get impletemented stages and Java 8,!16Trace aggr analysis graph migration
Pipeline #
......@@ -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();
......
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);
}
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"));
}
}
......@@ -3,21 +3,23 @@ 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 abstract class AbstractDotWriterStage extends AbstractConsumerStage<Graph> {
public class DotWriterStage extends AbstractConsumerStage<Graph> {
public AbstractDotWriterStage() {
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, getWriter(graph));
DotExporter dotExporter = new DotExporter(graph, writerMapper.map(graph));
dotExporter.transform();
}
protected abstract Writer getWriter(final Graph graph);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment