From 8cb553c0ff4f42c20d4c9e08983250144ec9c6ad Mon Sep 17 00:00:00 2001
From: stier <stier@fzi.de>
Date: Mon, 14 Nov 2016 17:37:57 +0100
Subject: [PATCH] Fixed issue with model builder, dependency creation.

---
 tools.descartes.pmx.builder/META-INF/MANIFEST.MF       |  3 ++-
 .../src/tools/descartes/pmx/builder/ModelBuilder.java  |  2 +-
 tools.descartes.pmx.console/META-INF/MANIFEST.MF       |  3 ++-
 .../tools/descartes/pmx/console/PMXCommandLine.java    |  2 ++
 tools.descartes.pmx.pcm.builder/META-INF/MANIFEST.MF   |  3 ++-
 .../tools/descartes/pmx/pcm/builder/PCMBuilder.java    | 10 ++++------
 .../descartes/pmx/pcm/builder/PCMSEFFFactory.java      |  2 +-
 tools.descartes.pmx.pcm.eclipse/META-INF/MANIFEST.MF   |  3 ++-
 .../descartes/pmx/frontend/pcm/PMXCommandLinePCM.java  |  4 ++--
 9 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/tools.descartes.pmx.builder/META-INF/MANIFEST.MF b/tools.descartes.pmx.builder/META-INF/MANIFEST.MF
index 54c73343..eb2475e8 100644
--- a/tools.descartes.pmx.builder/META-INF/MANIFEST.MF
+++ b/tools.descartes.pmx.builder/META-INF/MANIFEST.MF
@@ -10,4 +10,5 @@ Require-Bundle: org.eclipse.emf.ecore,
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: tools.descartes.pmx.builder,
  tools.descartes.pmx.filter.controlflow,
- tools.descartes.pmx.filter.util
+ tools.descartes.pmx.filter.util,
+ tools.descartes.pmx.util.cmbg
diff --git a/tools.descartes.pmx.builder/src/tools/descartes/pmx/builder/ModelBuilder.java b/tools.descartes.pmx.builder/src/tools/descartes/pmx/builder/ModelBuilder.java
index a68de6ff..26e42499 100644
--- a/tools.descartes.pmx.builder/src/tools/descartes/pmx/builder/ModelBuilder.java
+++ b/tools.descartes.pmx.builder/src/tools/descartes/pmx/builder/ModelBuilder.java
@@ -132,7 +132,7 @@ public abstract class ModelBuilder implements IModelBuilder{
 				+ " -> " + "Assembly_" + providingAssemblyName + " <"
 				+ providingAssemblyName + ">";
 		if(!connectorMap.containsKey(key)){
-			EObject connector = connectAssemblies(requiringAssemblyName, providingAssemblyName);
+			EObject connector = connectAssemblies(providingAssemblyName, requiringAssemblyName);
 			connectorMap.put(key, connector);
 		}
 	}
diff --git a/tools.descartes.pmx.console/META-INF/MANIFEST.MF b/tools.descartes.pmx.console/META-INF/MANIFEST.MF
index b7d48cae..a7e44298 100644
--- a/tools.descartes.pmx.console/META-INF/MANIFEST.MF
+++ b/tools.descartes.pmx.console/META-INF/MANIFEST.MF
@@ -10,6 +10,7 @@ Require-Bundle: kieker,
  org.apache.commons.cli,
  org.apache.log4j,
  tools.descartes.pmx,
- tools.descartes.pmx.builder
+ tools.descartes.pmx.builder,
+ tools.descartes.pmx.pcm.builder
 Import-Package: tools.descartes.pmx
 Export-Package: tools.descartes.pmx.console
diff --git a/tools.descartes.pmx.console/src/tools/descartes/pmx/console/PMXCommandLine.java b/tools.descartes.pmx.console/src/tools/descartes/pmx/console/PMXCommandLine.java
index 600a42ac..75747f78 100644
--- a/tools.descartes.pmx.console/src/tools/descartes/pmx/console/PMXCommandLine.java
+++ b/tools.descartes.pmx.console/src/tools/descartes/pmx/console/PMXCommandLine.java
@@ -55,6 +55,7 @@ import kieker.common.configuration.Configuration;
 import kieker.common.util.filesystem.FSUtil;
 import tools.descartes.pmx.PMXController;
 import tools.descartes.pmx.builder.IModelBuilder;
+import tools.descartes.pmx.pcm.builder.PCMBuilder;
 
 public class PMXCommandLine {
 
@@ -129,6 +130,7 @@ public class PMXCommandLine {
 		initConsoleLogging();
 		PMXCommandLine cmd = PMXCommandLine.parse(args);
 		PMXController pmx = cmd.createPMX();
+		setModelBuilder(new PCMBuilder(args[3]));
 		try{			
 			pmx.run();
 			return true;
diff --git a/tools.descartes.pmx.pcm.builder/META-INF/MANIFEST.MF b/tools.descartes.pmx.pcm.builder/META-INF/MANIFEST.MF
index d49f7fa6..c9566db2 100644
--- a/tools.descartes.pmx.pcm.builder/META-INF/MANIFEST.MF
+++ b/tools.descartes.pmx.pcm.builder/META-INF/MANIFEST.MF
@@ -7,7 +7,8 @@ Require-Bundle: org.eclipse.emf.ecore,
  kieker,
  org.apache.log4j,
  org.eclipse.emf.common,
- org.palladiosimulator.pcm;visibility:=reexport
+ org.palladiosimulator.pcm;visibility:=reexport,
+ tools.descartes.pmx.builder
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: tools.descartes.pmx.pcm.builder,
  tools.descartes.pmx.pcm.builder,
diff --git a/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMBuilder.java b/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMBuilder.java
index d48d8827..ed736ca1 100644
--- a/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMBuilder.java
+++ b/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMBuilder.java
@@ -148,10 +148,9 @@ public class PCMBuilder extends ModelBuilder implements IModelBuilder {
 		Map<String, Object> m = reg.getExtensionToFactoryMap();
 		m.put("repository", new XMIResourceFactoryImpl()); // file ending
 		Resource resource;
-		resource = resourceSet.createResource(URI.createURI("pathmap://PCM_MODELS/PrimitiveTypes.repository"));
+		resource = resourceSet.getResource(URI.createURI("pathmap://PCM_MODELS/PrimitiveTypes.repository"), true);
 		try {
-			InputStream inputStream = getClass().getResourceAsStream("PrimitiveTypes.repository");
-			resource.load(inputStream, Collections.EMPTY_MAP);
+			resource.load(Collections.EMPTY_MAP);
 			Repository dataTypeRepository = (Repository) resource.getContents().get(0);
 			for (DataType dataType : ((Repository) dataTypeRepository).getDataTypes__Repository()) {
 				dataTypeMap.put(((PrimitiveDataType) dataType).getType().getName(), dataType);
@@ -175,10 +174,9 @@ public class PCMBuilder extends ModelBuilder implements IModelBuilder {
 		Map<String, Object> m = reg.getExtensionToFactoryMap();
 		m.put("resourcetype", new XMIResourceFactoryImpl()); // file ending
 		Resource resource;
-		resource = resourceSet.createResource(URI.createURI("pathmap://PCM_MODELS/Palladio.resourcetype"));
+		resource = resourceSet.getResource(URI.createURI("pathmap://PCM_MODELS/Palladio.resourcetype"), true);
 		try {
-			InputStream inputStream = getClass().getResourceAsStream("Palladio.resourcetype");
-			resource.load(inputStream, Collections.EMPTY_MAP);
+			resource.load(Collections.EMPTY_MAP);
 			resourceRepository = (ResourceRepository) resource.getContents().get(0);
 		} catch (IOException e) {
 			log.error("IOException: Failed to read Palladio.resourcetype from file", e);
diff --git a/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMSEFFFactory.java b/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMSEFFFactory.java
index 2f45c77f..477dda5d 100644
--- a/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMSEFFFactory.java
+++ b/tools.descartes.pmx.pcm.builder/src/tools/descartes/pmx/pcm/builder/PCMSEFFFactory.java
@@ -280,7 +280,7 @@ public class PCMSEFFFactory {
 		externalCallAction.setCalledService_ExternalService(
 				(OperationSignature) builder.getMethod(Util.createMethodKey(externalCall.getMethodName(),
 						ModelBuilder.applyComponentNameFix(externalCall.getClassName()))));
-		builder.addRequiredRole(externalCall.getClassName(), "I"+component.getEntityName());
+		builder.addRequiredRole(component.getEntityName(), "I"+externalCall.getClassName());
 		OperationRequiredRole role = (OperationRequiredRole) builder.getRole("Required_" + "I"
 				+ externalCall.getClassName() + ModelBuilder.seperatorChar + component.getEntityName());
 		externalCallAction.setRole_ExternalService(role);
diff --git a/tools.descartes.pmx.pcm.eclipse/META-INF/MANIFEST.MF b/tools.descartes.pmx.pcm.eclipse/META-INF/MANIFEST.MF
index 0e200238..db007f90 100644
--- a/tools.descartes.pmx.pcm.eclipse/META-INF/MANIFEST.MF
+++ b/tools.descartes.pmx.pcm.eclipse/META-INF/MANIFEST.MF
@@ -9,6 +9,7 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.ui.ide,
  org.eclipse.core.resources,
  tools.descartes.pmx.console,
- org.eclipse.ui.console
+ org.eclipse.ui.console,
+ tools.descartes.pmx.pcm.builder
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tools.descartes.pmx.pcm.eclipse/src/tools/descartes/pmx/frontend/pcm/PMXCommandLinePCM.java b/tools.descartes.pmx.pcm.eclipse/src/tools/descartes/pmx/frontend/pcm/PMXCommandLinePCM.java
index 5347e5cd..4da6a8dc 100644
--- a/tools.descartes.pmx.pcm.eclipse/src/tools/descartes/pmx/frontend/pcm/PMXCommandLinePCM.java
+++ b/tools.descartes.pmx.pcm.eclipse/src/tools/descartes/pmx/frontend/pcm/PMXCommandLinePCM.java
@@ -5,8 +5,8 @@ import tools.descartes.pmx.console.PMXCommandLine;
 public class PMXCommandLinePCM extends PMXCommandLine {
 
 	public static void main(String[] args) {
-		setModelBuilder(new PCMBuilder());
-		run(args);
+		//setModelBuilder(new PCMBuilder(null));
+		//run(args);
 	}
 
 }
-- 
GitLab