[526558] Use ATL 4.0 and *.atl in JUnit Plugin test
diff --git a/plugins/org.eclipse.qvtd.atl/META-INF/MANIFEST.MF b/plugins/org.eclipse.qvtd.atl/META-INF/MANIFEST.MF
index 88e84af..83a8ab0 100644
--- a/plugins/org.eclipse.qvtd.atl/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.qvtd.atl/META-INF/MANIFEST.MF
@@ -6,7 +6,7 @@
 Bundle-Version: 0.15.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Localization: plugin
-Require-Bundle: org.eclipse.m2m.atl.common;bundle-version="[3.7.0,4.0.0)",
+Require-Bundle: org.eclipse.m2m.atl.common;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.qvtd.pivot.qvtrelation;bundle-version="[0.15.0,1.0.0)",
  org.eclipse.qvtd.runtime;bundle-version="[0.15.0,1.0.0)"
 Export-Package: org.eclipse.qvtd.atl.atl2qvtr,
diff --git a/plugins/org.eclipse.qvtd.atl/model/ATL2QVTr.qvtr b/plugins/org.eclipse.qvtd.atl/model/ATL2QVTr.qvtr
index 441ba13..f4c6fea 100644
--- a/plugins/org.eclipse.qvtd.atl/model/ATL2QVTr.qvtr
+++ b/plugins/org.eclipse.qvtd.atl/model/ATL2QVTr.qvtr
@@ -8,9 +8,9 @@
  * Contributors:
  *     E.D.Willink - initial implementation
  *******************************************************************************/
-import atlMM : 'platform:/resource/org.eclipse.m2m.atl.common/org/eclipse/m2m/atl/common/resources/ATL.ecore#/0'; 
-import atloclMM : 'platform:/resource/org.eclipse.m2m.atl.common/org/eclipse/m2m/atl/common/resources/ATL.ecore#/1'; 
-import atlprimsMM : 'platform:/resource/org.eclipse.m2m.atl.common/org/eclipse/m2m/atl/common/resources/ATL.ecore#/2'; 
+import atlMM : 'platform:/resource/org.eclipse.m2m.atl.common/model/ATL.ecore#/0'; 
+import atloclMM : 'platform:/resource/org.eclipse.m2m.atl.common/model/ATL.ecore#/1'; 
+import atlprimsMM : 'platform:/resource/org.eclipse.m2m.atl.common/model/ATL.ecore#/2'; 
 --import atlMM : 'http://www.eclipse.org/gmt/2005/ATL'; 
 --import atloclMM : 'http://www.eclipse.org/gmt/2005/OCL'; 
 --import atlprimsMM : 'http://www.eclipse.org/gmt/2005/ATL-PrimitiveTypes'; 
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/AbstractCompilerChain.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/AbstractCompilerChain.java
index 4d55fdc..e972e6f 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/AbstractCompilerChain.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/AbstractCompilerChain.java
@@ -104,7 +104,6 @@
 			assert uriConverter != null;
 			//			System.out.println("classPathProjectNames = " + classPathProjectNames);
 			List<@NonNull String> classpathProjects = JavaFileUtil.createClassPathProjectList(uriConverter, classPathProjectNames);
-			//			classpathProjects.add(0, javaResult.classPath);
 			//			System.out.println("classpathProjects = " + classpathProjects);
 			String problemMessage = JavaFileUtil.compileClass(javaResult.qualifiedClassName, javaResult.code, javaResult.classPath, classpathProjects);
 			if (problemMessage != null) {
diff --git a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/interim.target b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/interim.target
index 5af51cc..d4aaaf7 100644
--- a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/interim.target
+++ b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/interim.target
@@ -10,9 +10,8 @@
 <repository location="http://download.eclipse.org/acceleo/updates/releases/3.7"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">

-<unit id="org.eclipse.m2m.atl.emftvm.feature.group" version="0.0.0"/>

 <unit id="org.eclipse.m2m.atl.sdk.feature.group" version="0.0.0"/>

-<repository location="http://download.eclipse.org/mmt/atl/updates/releases/3.8"/>

+    <repository location="http://download.eclipse.org/mmt/atl/updates/milestones/4.0"/>

 </location>

 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">

 <unit id="org.eclipse.emf.examples.library" version="0.0.0"/>

diff --git a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/nightly.target b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/nightly.target
index 96831a2..62554a9 100644
--- a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/nightly.target
+++ b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/nightly.target
@@ -10,9 +10,8 @@
     <repository location="http://download.eclipse.org/acceleo/updates/releases/3.7"/>
   </location>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-    <unit id="org.eclipse.m2m.atl.emftvm.feature.group" version="0.0.0"/>
     <unit id="org.eclipse.m2m.atl.sdk.feature.group" version="0.0.0"/>
-    <repository location="http://download.eclipse.org/mmt/atl/updates/releases/3.8"/>
+    <repository location="http://download.eclipse.org/mmt/atl/updates/milestones/4.0"/>
   </location>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
     <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
diff --git a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/photon.target b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/photon.target
index a21006d..3d132a4 100644
--- a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/photon.target
+++ b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/photon.target
@@ -14,10 +14,6 @@
     <repository location="http://download.eclipse.org/staging/photon"/>
   </location>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-    <unit id="org.eclipse.m2m.atl.emftvm.feature.group" version="0.0.0"/>
-    <repository location="http://download.eclipse.org/mmt/atl/updates/releases/3.8"/>
-  </location>
-  <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
     <unit id="org.eclipse.emf.examples.library" version="0.0.0"/>
     <repository location="http://download.eclipse.org/modeling/emf/emf/updates/2.14milestones/core"/>
   </location>
diff --git a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/stable.target b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/stable.target
index 3994ba9..39ff012 100644
--- a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/stable.target
+++ b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/stable.target
@@ -3,7 +3,7 @@
 <locations>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
     <unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
-    <unit id="org.eclipse.m2m.atl.feature.group" version="0.0.0"/>
+    <!--unit id="org.eclipse.m2m.atl.sdk.feature.group" version="0.0.0"/-->
     <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
     <unit id="org.eclipse.ocl.examples.feature.group" version="0.0.0"/>
     <unit id="org.eclipse.uml2.sdk.feature.group" version="0.0.0"/>
@@ -20,8 +20,8 @@
     <repository location="http://download.eclipse.org/modeling/mdt/ocl/updates/milestones/6.4.0"/>
   </location>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-    <unit id="org.eclipse.m2m.atl.emftvm.feature.group" version="0.0.0"/>
-    <repository location="http://download.eclipse.org/mmt/atl/updates/releases/3.7"/>
+    <unit id="org.eclipse.m2m.atl.sdk.feature.group" version="0.0.0"/>
+    <repository location="http://download.eclipse.org/mmt/atl/updates/milestones/4.0"/>
   </location>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
     <unit id="org.eclipse.epsilon.core.feature.feature.group" version="0.0.0"/>
diff --git a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/unstable.target b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/unstable.target
index e30b759..a8d5231 100644
--- a/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/unstable.target
+++ b/releng/org.eclipse.qvtd.releng.tycho/targetPlatforms/unstable.target
@@ -3,7 +3,7 @@
 <locations>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
     <unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
-    <unit id="org.eclipse.m2m.atl.feature.group" version="0.0.0"/>
+    <!--unit id="org.eclipse.m2m.atl.sdk.feature.group" version="0.0.0"/-->
     <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
     <unit id="org.eclipse.uml2.sdk.feature.group" version="0.0.0"/>
     <unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
@@ -15,8 +15,8 @@
     <repository location="http://download.eclipse.org/modeling/emf/emf/updates/2.13"/>
   </location>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
-    <unit id="org.eclipse.m2m.atl.emftvm.feature.group" version="0.0.0"/>
-    <repository location="http://download.eclipse.org/mmt/atl/updates/releases/3.7"/>
+    <unit id="org.eclipse.m2m.atl.sdk.feature.group" version="0.0.0"/>
+    <repository location="http://download.eclipse.org/mmt/atl/updates/milestones/4.0"/>
   </location>
   <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
     <unit id="org.eclipse.epsilon.core.feature.feature.group" version="0.0.0"/>
diff --git a/tests/org.eclipse.qvtd.atl.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.atl.tests/META-INF/MANIFEST.MF
index c2fce67..4c143f7 100644
--- a/tests/org.eclipse.qvtd.atl.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.qvtd.atl.tests/META-INF/MANIFEST.MF
@@ -9,13 +9,13 @@
 Export-Package: org.eclipse.qvtd.atl.tests
 Require-Bundle: org.junit,
  org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.xtext.util;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.qvtd.atl;bundle-version="[0.15.0,1.0.0)",
  org.eclipse.qvtd.pivot.qvtimperative;bundle-version="[0.15.0,1.0.0)",
  org.eclipse.qvtd.pivot.qvtrelation;bundle-version="[0.15.0,1.0.0)",
- org.eclipse.m2m.atl.emftvm.compiler;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.m2m.atl.dsls;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.m2m.atl.emftvm;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.m2m.atl.engine;bundle-version="[3.7.0,4.0.0)"
-Import-Package: org.eclipse.core.runtime
+ org.eclipse.m2m.atl.emftvm.compiler;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.m2m.atl.dsls;bundle-version="[4.00,5.0.0)",
+ org.eclipse.m2m.atl.emftvm;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.m2m.atl.engine;bundle-version="[4.0.0,5.0.0)"
 Automatic-Module-Name: org.eclipse.qvtd.atl.tests
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF
index 6ca31a6..719ef21 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/META-INF/MANIFEST.MF
@@ -18,6 +18,9 @@
  org.eclipse.qvtd.xtext.qvtimperative.tests;bundle-version="[0.15.0,1.0.0)",
  org.eclipse.qvtd.xtext.qvtcore.tests;bundle-version="[0.15.0,1.0.0)",
  org.eclipse.qvtd.examples.qvtrelation.hstm2fstm;bundle-version="[0.15.0,1.0.0)",
- org.eclipse.m2m.atl.common;bundle-version="3.8.0"
+ org.eclipse.m2m.atl.common;bundle-version="3.8.0",
+ org.eclipse.m2m.atl.emftvm.compiler,
+ org.eclipse.m2m.atl.engine,
+ org.eclipse.m2m.atl.dsls
 Export-Package: org.eclipse.qvtd.xtext.qvtrelation.tests
 Automatic-Module-Name: org.eclipse.qvtd.xtext.qvtrelation.tests
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/models/families2persons/Families2Persons.atl b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/models/families2persons/Families2Persons.atl
index 5f1f17f..4e9f08e 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/models/families2persons/Families2Persons.atl
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/models/families2persons/Families2Persons.atl
@@ -1,6 +1,6 @@
 -- @atlcompiler emftvm

--- @path Families=/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/families2persons/Families.ecore

--- @path Persons=/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/families2persons/Persons.ecore

+-- @path Families=/org.eclipse.qvtd.xtext.qvtrelation.tests/models/families2persons/Families.ecore

+-- @path Persons=/org.eclipse.qvtd.xtext.qvtrelation.tests/models/families2persons/Persons.ecore

 

 module Families2Persons;

 create OUT : Persons from IN : Families;

diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
index 4edfac9..24ee0f7 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
@@ -25,6 +25,9 @@
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.m2m.atl.dsls.core.EMFTCSInjector;
+import org.eclipse.m2m.atl.emftvm.compiler.AtlResourceFactoryImpl;
+import org.eclipse.m2m.atl.engine.parser.AtlParser;
 import org.eclipse.ocl.examples.codegen.dynamic.JavaFileUtil;
 import org.eclipse.ocl.pivot.internal.manager.PivotMetamodelManager;
 import org.eclipse.ocl.pivot.internal.resource.ProjectMap;
@@ -260,9 +263,9 @@
 		Class<? extends Transformer> txClass1 = null;
 		URI txURI1 = URI.createPlatformResourceURI("/org.eclipse.qvtd.atl/model/ATL2QVTr.qvtr", true);
 		MyQVT myQVT1 = createQVT("ATL2QVTr", txURI1);
-		myQVT1.addUsedGenPackage("org.eclipse.m2m.atl.common/org/eclipse/m2m/atl/common/resources/ATL.genmodel", "//ATL");
-		myQVT1.addUsedGenPackage("org.eclipse.m2m.atl.common/org/eclipse/m2m/atl/common/resources/ATL.genmodel", "//OCL");
-		myQVT1.addUsedGenPackage("org.eclipse.m2m.atl.common/org/eclipse/m2m/atl/common/resources/ATL.genmodel", "//PrimitiveTypes");
+		myQVT1.addUsedGenPackage("org.eclipse.m2m.atl.common/model/ATL.genmodel", "//ATL");
+		myQVT1.addUsedGenPackage("org.eclipse.m2m.atl.common/model/ATL.genmodel", "//OCL");
+		myQVT1.addUsedGenPackage("org.eclipse.m2m.atl.common/model/ATL.genmodel", "//PrimitiveTypes");
 		myQVT1.addUsedGenPackage("org.eclipse.ocl.pivot/model/Pivot.genmodel", "//pivot");
 		myQVT1.addUsedGenPackage("org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.genmodel", "//qvtbase");
 		myQVT1.addUsedGenPackage("org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.genmodel", "//qvtrelation");
@@ -292,9 +295,15 @@
 		//		MyQVT myQVT2 = new MyQVT(createTestProjectManager(), getTestBundleURI(), "models/families2persons", null);
 		try {
 			myQVT2.createGeneratedExecutor(txClass1);
-			//			myQVT1.getMetamodelManager().getASResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("atl", new AtlResourceFactoryImpl());	// FIXME wrong ResourceSet
-			//			myQVT1.getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("atl", new AtlResourceFactoryImpl());
-			myQVT2.loadInput("atl", getModelsURI("families2persons/Families2Persons.atl.xmi"));
+			if (EMFPlugin.IS_ECLIPSE_RUNNING) {
+				EMFTCSInjector.class.getName();				// Hidden ATL dependency
+				AtlParser.class.getName();					// Hidden ATL dependency
+				myQVT2.getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("atl", new AtlResourceFactoryImpl());
+				myQVT2.loadInput("atl", getModelsURI("families2persons/Families2Persons.atl"));
+			}
+			else {
+				myQVT2.loadInput("atl", getModelsURI("families2persons/Families2Persons.atl.xmi"));		// FIXME Working around BUG 514604
+			}
 			myQVT2.executeTransformation();
 			myQVT2.saveOutput("qvtr", txURI2, getModelsURI("families2persons/Families2Persons_expected.qvtras"), null);
 		}