From 3917cb03678e775a7ac26aae1cbed4ff981a9ebe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de>
Date: Tue, 31 May 2016 13:57:58 +0200
Subject: [PATCH] first version of deployment dependency graphs with level:
 containers and components

---
 .../analysis/TraceAnalysisConfiguration.java  | 20 ++++++++++++++-----
 .../DeploymentDependencyGraphCreator.java     | 12 ++++++++++-
 .../DotOperationsDependencyExportStage.java   |  2 +-
 ...OperationsDependencyGraphCreatorStage.java | 10 ++++++++--
 4 files changed, 35 insertions(+), 9 deletions(-)
 rename src/main/java/kieker/analysis/dev/{ => dependencygraphs}/DotOperationsDependencyExportStage.java (95%)

diff --git a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
index 0efbcfd7..aa053645 100644
--- a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
+++ b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
@@ -6,9 +6,10 @@ package kieker.analysis;
 import java.io.File;
 
 import kieker.analysis.dev.ComponentStatisticsDecoratorStage;
-import kieker.analysis.dev.DotOperationsDependencyExportStage;
 import kieker.analysis.dev.OperationsStatisticsDecoratorStage;
 import kieker.analysis.dev.SoftwareSystemCreatorStage;
+import kieker.analysis.dev.dependencygraphs.DeploymentDependencyGraphLevel;
+import kieker.analysis.dev.dependencygraphs.DotOperationsDependencyExportStage;
 import kieker.analysis.dev.dependencygraphs.OperationsDependencyGraphCreatorStage;
 import kieker.analysis.domain.AggregatedTrace;
 import kieker.analysis.domain.Trace;
@@ -99,16 +100,25 @@ public class TraceAnalysisConfiguration extends Configuration {
 		ComponentStatisticsDecoratorStage componentsStatisticsDecorator = new ComponentStatisticsDecoratorStage();
 		Distributor<SoftwareSystem> x2SoftwareSystemDistributor = new Distributor<>(new CopyByReferenceStrategy()); // TODO name required
 		// ContainerStatisticsDecoratorStage containersStatisticsDecorator = new ContainerStatisticsDecoratorStage(); //TODO remove
-		OperationsDependencyGraphCreatorStage operationsDependencyGraphCreator = new OperationsDependencyGraphCreatorStage(); // TODO temp
-		DotOperationsDependencyExportStage dotDependencyExporter = new DotOperationsDependencyExportStage(graphFilesOutputDir);
+		OperationsDependencyGraphCreatorStage operationsDependencyGraphCreator = new OperationsDependencyGraphCreatorStage(DeploymentDependencyGraphLevel.OPERATION);
+		DotOperationsDependencyExportStage dotOperationsDependencyExporter = new DotOperationsDependencyExportStage(graphFilesOutputDir);
+		OperationsDependencyGraphCreatorStage componentDependencyGraphCreator = new OperationsDependencyGraphCreatorStage(DeploymentDependencyGraphLevel.COMPONENT);
+		DotOperationsDependencyExportStage dotComponentDependencyExporter = new DotOperationsDependencyExportStage(graphFilesOutputDir);
+		OperationsDependencyGraphCreatorStage containerDependencyGraphCreator = new OperationsDependencyGraphCreatorStage(DeploymentDependencyGraphLevel.CONTAINER);
+		DotOperationsDependencyExportStage dotContainerDependencyExporter = new DotOperationsDependencyExportStage(graphFilesOutputDir);
 
 		super.connectPorts(aggregatedTraceDistributor.getNewOutputPort(), softwareSystemCreator.getInputPort());
 		super.connectPorts(softwareSystemCreator.getOutputPort(), operationsStatisticsDecorator.getInputPort());
 		super.connectPorts(operationsStatisticsDecorator.getOutputPort(), x1SoftwareSystemDistributor.getInputPort());
+		super.connectPorts(x1SoftwareSystemDistributor.getNewOutputPort(), operationsDependencyGraphCreator.getInputPort());
+		super.connectPorts(operationsDependencyGraphCreator.getOutputPort(), dotOperationsDependencyExporter.getInputPort());
 		// super.connectPorts(x1SoftwareSystemDistributor.getNewOutputPort(), componentsStatisticsDecorator.getInputPort());
 		// super.connectPorts(componentsStatisticsDecorator.getOutputPort(), x2SoftwareSystemDistributor.getInputPort());
-		super.connectPorts(x1SoftwareSystemDistributor.getNewOutputPort(), operationsDependencyGraphCreator.getInputPort());
-		super.connectPorts(operationsDependencyGraphCreator.getOutputPort(), dotDependencyExporter.getInputPort());
+		super.connectPorts(x1SoftwareSystemDistributor.getNewOutputPort(), x2SoftwareSystemDistributor.getInputPort());
+		super.connectPorts(x2SoftwareSystemDistributor.getNewOutputPort(), componentDependencyGraphCreator.getInputPort());
+		super.connectPorts(componentDependencyGraphCreator.getOutputPort(), dotComponentDependencyExporter.getInputPort());
+		super.connectPorts(x2SoftwareSystemDistributor.getNewOutputPort(), containerDependencyGraphCreator.getInputPort());
+		super.connectPorts(containerDependencyGraphCreator.getOutputPort(), dotContainerDependencyExporter.getInputPort());
 
 		/*
 		 *
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/DeploymentDependencyGraphCreator.java b/src/main/java/kieker/analysis/dev/dependencygraphs/DeploymentDependencyGraphCreator.java
index c4fada31..af458a80 100644
--- a/src/main/java/kieker/analysis/dev/dependencygraphs/DeploymentDependencyGraphCreator.java
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/DeploymentDependencyGraphCreator.java
@@ -32,7 +32,17 @@ public class DeploymentDependencyGraphCreator {
 	public Graph create(final SoftwareSystem softwareSystem) {
 
 		Graph graph = new GraphImpl();
-		graph.setName("OperationsDependencyGraph"); // TODO
+		switch (this.depth) {
+		case COMPONENT:
+			graph.setName("DeploymentComponentsDependencyGraph");
+			break;
+		case CONTAINER:
+			graph.setName("DeploymentContainersDependencyGraph");
+			break;
+		case OPERATION:
+			graph.setName("DeploymentOperationsDependencyGraph");
+			break;
+		}
 
 		for (Container container : softwareSystem.getContainers()) {
 
diff --git a/src/main/java/kieker/analysis/dev/DotOperationsDependencyExportStage.java b/src/main/java/kieker/analysis/dev/dependencygraphs/DotOperationsDependencyExportStage.java
similarity index 95%
rename from src/main/java/kieker/analysis/dev/DotOperationsDependencyExportStage.java
rename to src/main/java/kieker/analysis/dev/dependencygraphs/DotOperationsDependencyExportStage.java
index f9bb3ec5..323a8a45 100644
--- a/src/main/java/kieker/analysis/dev/DotOperationsDependencyExportStage.java
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/DotOperationsDependencyExportStage.java
@@ -1,4 +1,4 @@
-package kieker.analysis.dev;
+package kieker.analysis.dev.dependencygraphs;
 
 import java.util.function.Function;
 
diff --git a/src/main/java/kieker/analysis/dev/dependencygraphs/OperationsDependencyGraphCreatorStage.java b/src/main/java/kieker/analysis/dev/dependencygraphs/OperationsDependencyGraphCreatorStage.java
index 2d33c135..7bd819d1 100644
--- a/src/main/java/kieker/analysis/dev/dependencygraphs/OperationsDependencyGraphCreatorStage.java
+++ b/src/main/java/kieker/analysis/dev/dependencygraphs/OperationsDependencyGraphCreatorStage.java
@@ -1,5 +1,7 @@
 package kieker.analysis.dev.dependencygraphs;
 
+import java.util.Collection;
+
 import kieker.analysis.domain.systemdependency.SoftwareSystem;
 import kieker.analysis.util.graph.Graph;
 
@@ -9,8 +11,12 @@ public class OperationsDependencyGraphCreatorStage extends AbstractTransformatio
 
 	private final DeploymentDependencyGraphCreator graphCreator;
 
-	public OperationsDependencyGraphCreatorStage() {
-		this.graphCreator = new DeploymentDependencyGraphCreator(DeploymentDependencyGraphLevel.OPERATION);
+	public OperationsDependencyGraphCreatorStage(final DeploymentDependencyGraphLevel depth) {
+		this.graphCreator = new DeploymentDependencyGraphCreator(depth);
+	}
+
+	public OperationsDependencyGraphCreatorStage(final DeploymentDependencyGraphLevel depth, final Collection<DeploymentDependencyGraphLevel> relations) {
+		this.graphCreator = new DeploymentDependencyGraphCreator(depth, relations);
 	}
 
 	@Override
-- 
GitLab