[ocl2qvtp] - Removing saving from the ocl2qvtp component (rely on
compiler chain)
- Improving AbstractCompilerChain options reuse
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiBroker.java b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiBroker.java
index 25345ff..b3b44e0 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiBroker.java
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiBroker.java
@@ -183,7 +183,7 @@
 		PivotModel oclModel = createOCLModel(oclDocURI);
 		pModel= createQVTpModel(qvtiFileURI);
 		
-		OCL2QVTp ocl2qvtp = new OCL2QVTp(environmentFactory, traceabilityPropName, savingOptions);
+		OCL2QVTp ocl2qvtp = new OCL2QVTp(environmentFactory, traceabilityPropName);
 		Resource resource = ocl2qvtp.run(oclModel.getResource().getResourceSet() , oclDocURI); // NB. cModel is the .ocl doc
 		
 		pModel.getResource().getContents().addAll(resource.getContents());
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiCompilerChain.java b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiCompilerChain.java
index db74445..ab1218f 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiCompilerChain.java
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTiCompilerChain.java
@@ -12,6 +12,7 @@
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.ocl.pivot.Element;
 import org.eclipse.qvtd.compiler.AbstractCompilerChain;
+import org.eclipse.qvtd.compiler.CompilerChain;
 import org.eclipse.qvtd.pivot.qvtbase.Transformation;
 import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbaseUtil;
 import org.eclipse.qvtd.pivot.qvtimperative.utilities.QVTimperative;
@@ -19,27 +20,34 @@
 public class OCL2QVTiCompilerChain extends AbstractCompilerChain {
 
 	public @NonNull static final String DEFAULT_TRACE_PROPERTY_NAME = "ast"; 
-	public @NonNull static final String OCL2QVTP_STEP = "ocl2qvtp";  
-	public @NonNull static final Key<String> TRACE_PROPERTY_NAME = new Key<String>("ocl2qvtp.tracePropName");
+	public @NonNull static final Key<String> TRACE_PROPERTY_NAME_KEY = new Key<String>("ocl2qvtp.tracePropName");
 
 	private @NonNull URI oclASUri;
 	private @NonNull List<URI> extendedASUris = new ArrayList<URI>();	
 	private @Nullable String traceabilityPropName;
 	
+	/**
+	 * To provide a different traceabilityPropName different to the default {@link OCL2QVTiCompilerChain#DEFAULT_TRACE_PROPERTY_NAME "ast"} one,
+	 * it must be passed as an option using the {@link #TRACE_PROPERTY_NAME_KEY TRACE_PROPERTY_NAME_KEY} and the {@link CompilerChain#QVTP_STEP QVTP_STEP}
+	 * 
+	 * @param qvti mandatory {@link QVTimperative} instance
+	 * @param options optional options
+	 * @param oclDocURI the mandatory main OCL document URI to compile
+	 * @param extendedDocURIs optional OCL document URIs that the main one extends
+	 */
 	public OCL2QVTiCompilerChain(@NonNull QVTimperative qvti, @Nullable Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> options,			
-			@NonNull URI oclDocURI, @NonNull URI... extendDocURIs) { 
+			@NonNull URI oclDocURI, URI... extendedDocURIs) { 
 		super(qvti.getEnvironmentFactory(), oclDocURI, options);
 		this.traceabilityPropName = getTraceabilityPropertyName();
 		this.oclASUri = qvti.parse(oclDocURI).getURI();
-		for (URI oclDocUri : extendDocURIs) {
+		for (URI oclDocUri : extendedDocURIs) {
 			this.extendedASUris.add(qvti.parse(oclDocUri).getURI()); // We add the AS URI
 		}
 	}
 
 	@Override
 	public @NonNull Transformation compile(@NonNull String enforcedOutputName) throws IOException {
-		Resource qvtpResource = ocl2qvtp();
-		return qvtp2qvti(qvtpResource);
+		return qvtp2qvti(ocl2qvtp());
 	}
 	
 	public @NonNull Transformation compile() throws IOException {
@@ -54,28 +62,23 @@
 				qvtpModels.add(ocl2qvtp(extendedQVTpModel));
 			}
 			QVTpModelsMerger.merge(environmentFactory , pModel, qvtpModels);
-			options.get(OCL2QVTP_STEP);
-			pModel.save(getOption(OCL2QVTP_STEP, SAVE_OPTIONS_KEY));
+			saveResource(pModel, QVTP_STEP);
 			for(Resource qvtpModel : qvtpModels) {	// unload unnecessary qvtpModels
 				qvtpModel.unload();
 			}
 		}
-		assertNoResourceErrors("pModel", pModel);
 		return pModel;
 	}
 	
-	protected Resource ocl2qvtp(URI oclURI) {
-		OCL2QVTp ocl2qvtp = new OCL2QVTp(environmentFactory, traceabilityPropName, getOption(OCL2QVTP_STEP, SAVE_OPTIONS_KEY));
-		return ocl2qvtp.run(environmentFactory.getMetamodelManager().getASResourceSet(),
-				oclURI); 
-	}
-	
-	private @Nullable Map<?, ?> getSavingOptions() {
-		return getOption(OCL2QVTP_STEP, SAVE_OPTIONS_KEY);
+	protected Resource ocl2qvtp(URI oclURI) throws IOException {
+		OCL2QVTp ocl2qvtp = new OCL2QVTp(environmentFactory, traceabilityPropName);
+		Resource pResource = ocl2qvtp.run(environmentFactory.getMetamodelManager().getASResourceSet(), oclURI);
+		saveResource(pResource, QVTP_STEP);
+		return pResource;
 	}
 	
 	private @NonNull String getTraceabilityPropertyName() {
-		String tracePropName = getOption(OCL2QVTP_STEP, TRACE_PROPERTY_NAME);
+		String tracePropName = getOption(QVTP_STEP, TRACE_PROPERTY_NAME_KEY);
 		return tracePropName == null ? DEFAULT_TRACE_PROPERTY_NAME : tracePropName;
 	}
 	@Override
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTp.java b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTp.java
index f51277f..0904c55 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTp.java
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/OCL2QVTp.java
@@ -9,7 +9,6 @@
 import static org.eclipse.qvtd.cs2as.compiler.internal.OCL2QVTpUtil.getSuperClasses;
 import static org.eclipse.qvtd.cs2as.compiler.internal.OCL2QVTpUtil.getUpdateMappingName;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -21,7 +20,6 @@
 import java.util.stream.Collectors;
 
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.common.util.WrappedException;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
@@ -62,22 +60,17 @@
 
 public class OCL2QVTp {
 
-	private Logger logger = Logger.getLogger(getClass().getName());
+	private @NonNull Logger logger = Logger.getLogger(getClass().getName());
 	private @NonNull EnvironmentFactory envFact;
 	private @NonNull String traceabilityPropName;
 	private @Nullable Map<?,?> saveOptions;
 	
-	public static final String RIGHT_MODEL_TYPE_NAME = "rightAS";
-	public static final String LEFT_MODEL_TYPE_NAME = "leftCS";
+	public static final @NonNull String RIGHT_MODEL_TYPE_NAME = "rightAS";
+	public static final @NonNull String LEFT_MODEL_TYPE_NAME = "leftCS";
 	
 	public OCL2QVTp(@NonNull EnvironmentFactory envFact, @NonNull String traceabilityPropName) {
-		this(envFact, traceabilityPropName, null);
-	}
-	
-	public OCL2QVTp(@NonNull EnvironmentFactory envFact, @NonNull String traceabilityPropName, @Nullable Map<?, ?> saveOptions) {
 		this.envFact = envFact;
 		this.traceabilityPropName = traceabilityPropName;
-		this.saveOptions = saveOptions;
 	}
 	
 	public Resource run(ResourceSet resourceSet, URI oclDocURI) {
@@ -95,12 +88,8 @@
 			URI outputURI = oclDocURI.trimFileExtension().trimFileExtension().appendFileExtension("qvtp.qvtcas");
 			Resource outputResource = resourceSet.createResource(outputURI);
 			outputResource.getContents().add(outputModel);
-			try {
-				outputResource.save(saveOptions);
-				return outputResource;
-			} catch (IOException e) {
-				throw new WrappedException(e);
-			}
+			return outputResource;
+		
 		} else {
 			throw new IllegalArgumentException(oclDocURI.toString() + " doesn't contain an OCL Model");
 		}
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
index d49b152..74d7ebc 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
@@ -38,9 +38,6 @@
 import org.eclipse.ocl.pivot.evaluation.tx.Transformer;
 import org.eclipse.ocl.pivot.internal.manager.MetamodelManagerInternal;
 import org.eclipse.ocl.pivot.internal.resource.StandaloneProjectMap;
-import org.eclipse.ocl.pivot.internal.utilities.EnvironmentFactoryInternal;
-import org.eclipse.ocl.pivot.internal.utilities.OCLInternal;
-import org.eclipse.ocl.pivot.internal.validation.PivotEObjectValidator;
 import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
 import org.eclipse.ocl.pivot.resource.ASResource;
 import org.eclipse.ocl.pivot.resource.CSResource;
@@ -48,7 +45,6 @@
 import org.eclipse.ocl.pivot.utilities.OCL;
 import org.eclipse.ocl.pivot.utilities.PivotConstants;
 import org.eclipse.ocl.xtext.completeocl.CompleteOCLStandaloneSetup;
-import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator;
 import org.eclipse.qvtd.compiler.CompilerChain.Key;
 import org.eclipse.qvtd.compiler.internal.etl.EtlTask;
 import org.eclipse.qvtd.compiler.internal.etl.MtcBroker;
@@ -58,13 +54,11 @@
 import org.eclipse.qvtd.cs2as.compiler.internal.CS2ASJavaCompilerImpl;
 import org.eclipse.qvtd.cs2as.compiler.internal.CS2ASJavaCompilerParametersImpl;
 import org.eclipse.qvtd.cs2as.compiler.internal.OCL2QVTiCompilerChain;
-import org.eclipse.qvtd.pivot.qvtbase.QVTbasePackage;
+import org.eclipse.qvtd.cs2as.compiler.internal.OCL2QVTp;
 import org.eclipse.qvtd.pivot.qvtbase.Transformation;
 import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbase;
 import org.eclipse.qvtd.pivot.qvtcore.QVTcorePivotStandaloneSetup;
-import org.eclipse.qvtd.pivot.qvtcorebase.QVTcoreBasePackage;
 import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
-import org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage;
 import org.eclipse.qvtd.pivot.qvtimperative.evaluation.BasicQVTiExecutor;
 import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory;
 import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiIncrementalExecutor;
@@ -96,7 +90,6 @@
 	private static final boolean CREATE_GRAPHML = false; // Note. You need Epsilon with Bug 458724 fix to have output graphml models serialised
 	private static final @NonNull String TESTS_GEN_PATH = "../org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/";
 	private static final @NonNull String TESTS_PACKAGE_NAME = "cg";
-	private static final @NonNull String NEW_TESTS_PACKAGE_NAME = "new_cg";
 	private static final @NonNull String DEBUG_SEGMENT = "debug";
 	private static @NonNull URI TESTS_BASE_URI = URI.createPlatformResourceURI("org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models", true);
 	
@@ -140,7 +133,7 @@
 
 	    	ResourceSet rSet = getResourceSet();
 			Resource inputResource = rSet.getResource(csModelURI, true);
-			tx.addRootObjects("leftCS", ClassUtil.nonNullState(inputResource.getContents()));
+			tx.addRootObjects(OCL2QVTp.LEFT_MODEL_TYPE_NAME, ClassUtil.nonNullState(inputResource.getContents()));
 			assertTrue(tx.run());
 			Resource outputResource = rSet.createResource(asModelURI);
 			outputResource.getContents().addAll(tx.getRootObjects("rightAS"));
@@ -166,8 +159,8 @@
 
 			BasicQVTiExecutor testEvaluator = new QVTiIncrementalExecutor(getEnvironmentFactory(), tx, QVTiIncrementalExecutor.Mode.LAZY);
 			//testEvaluator.saveTransformation(null);
-		    testEvaluator.loadModel("leftCS", csModelURI);
-		    testEvaluator.createModel("rightAS", asModelURI, null);
+		    testEvaluator.loadModel(OCL2QVTp.LEFT_MODEL_TYPE_NAME, csModelURI);
+		    testEvaluator.createModel(OCL2QVTp.RIGHT_MODEL_TYPE_NAME, asModelURI, null);
 		    boolean success = testEvaluator.execute();
 		    testEvaluator.saveModels(TestsXMLUtil.defaultSavingOptions);
 		    testEvaluator.dispose();
@@ -185,7 +178,7 @@
 			for (int i=0; i < extendedOclDocs.length; i++) {
 				oclDocURIs[i] = baseURI.appendSegment(extendedOclDocs[i]);
 			}
-			OCL2QVTiCompilerChain compiler = new OCL2QVTiCompilerChain(this, createOcl2QVTpCompilerOptions(), mainOclDocURI, oclDocURIs);
+			OCL2QVTiCompilerChain compiler = new OCL2QVTiCompilerChain(this, createTestCasesCompilerOptions(), mainOclDocURI, oclDocURIs);
 			Transformation qvtiTransf = compiler.compile();
 			URI txURI = qvtiTransf.eResource().getURI();
 			if (txURI != null) {
@@ -196,14 +189,7 @@
 	    	return qvtiTransf;
 		}
 		
-		protected @NonNull Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> createOcl2QVTpCompilerOptions() {
-			Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> options = new HashMap<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>>();
-			Map<@NonNull Key<?>, @Nullable Object> ocl2qvtpOptions = new HashMap<@NonNull Key<?>, @Nullable Object>();
-			ocl2qvtpOptions.put(OCL2QVTiCompilerChain.SAVE_OPTIONS_KEY, TestsXMLUtil.defaultSavingOptions);
-			options.put(OCL2QVTiCompilerChain.OCL2QVTP_STEP, ocl2qvtpOptions);
-			return options;
-		}
-		
+
 		protected void loadEcoreFile(String ecoreFileName, EPackage ePackage) {
 			URI fileURI = baseURI.appendSegment(ecoreFileName);
 			ResourceSet rSet = getResourceSet();
@@ -249,12 +235,12 @@
 	private static class OCL2QVTiCompilerTester extends OCL2QVTiCompilerChain {
 
 		public OCL2QVTiCompilerTester(@NonNull URI baseURI, @NonNull String oclDocName, @NonNull QVTimperative metaModelManager) {
-			super(metaModelManager, null, baseURI.appendSegment(oclDocName));
+			super(metaModelManager, createTestCasesCompilerOptions(), baseURI.appendSegment(oclDocName));
 		}
 	
 		// For testing purpose
 		@Override
-		protected Resource ocl2qvtp(URI oclDocURI) {
+		protected Resource ocl2qvtp(URI oclDocURI) throws IOException {
 			return super.ocl2qvtp(oclDocURI);
 		}
 	}
@@ -281,7 +267,7 @@
 		CS2ASJavaCompilerParameters cgParams = new CS2ASJavaCompilerParametersImpl(
 				"example1.target.lookup.util.TargetLookupSolver",
 				"example1.target.lookup.util.TargetLookupResult",
-				TESTS_GEN_PATH, NEW_TESTS_PACKAGE_NAME);
+				TESTS_GEN_PATH, TESTS_PACKAGE_NAME);
 		Class<? extends Transformer> txClass = new CS2ASJavaCompilerImpl().compileTransformation(myQVT, qvtiTransf, cgParams);
 		myQVT.executeModelsTX_CG(txClass, "model1");
 		myQVT.executeModelsTX_CG(txClass, "model2");
@@ -340,7 +326,7 @@
 		CS2ASJavaCompilerParameters cgParams = new CS2ASJavaCompilerParametersImpl(
 				"example2.classes.lookup.util.ClassesLookupSolver",
 				"example2.classes.lookup.util.ClassesLookupResult",
-				TESTS_GEN_PATH, NEW_TESTS_PACKAGE_NAME);
+				TESTS_GEN_PATH, TESTS_PACKAGE_NAME);
 		Class<? extends Transformer> txClass = new CS2ASJavaCompilerImpl().compileTransformation(myQVT, qvtiTransf, cgParams);
 		myQVT.executeModelsTX_CG(txClass, "model1");
 		myQVT.executeModelsTX_CG(txClass, "model2");
@@ -398,7 +384,7 @@
 		CS2ASJavaCompilerParameters cgParams = new CS2ASJavaCompilerParametersImpl(
 				"example2.classes.lookup.util.ClassesLookupSolver",
 				"example2.classes.lookup.util.ClassesLookupResult",
-				TESTS_GEN_PATH, NEW_TESTS_PACKAGE_NAME);
+				TESTS_GEN_PATH, TESTS_PACKAGE_NAME);
 		Class<? extends Transformer> txClass = new CS2ASJavaCompilerImpl().compileTransformation(myQVT, qvtiTransf, cgParams);
 		
 		myQVT.dispose();
@@ -506,7 +492,7 @@
 		myQVT.loadGenModels("SimplerKiamaAS.genmodel", "SimplerKiamaCS.genmodel");
 		Transformation qvtiTransf = myQVT.executeNewOCL2QVTi_CompilerChain("SimplerKiama.ocl");
 		CS2ASJavaCompilerParameters cgParams = new CS2ASJavaCompilerParametersImpl("","",
-				TESTS_GEN_PATH, NEW_TESTS_PACKAGE_NAME);
+				TESTS_GEN_PATH, TESTS_PACKAGE_NAME);
 		Class<? extends Transformer> txClass = new CS2ASJavaCompilerImpl().compileTransformation(myQVT, qvtiTransf, cgParams);
 //		myQVT.getEnvironmentFactory().setEvaluationTracingEnabled(true);
 // FIXME BUG 484278 model0 has an invalid model TopCS.node[1] has a null value.
@@ -609,20 +595,7 @@
 
 	protected static void assertValidQVTiModel(@NonNull URI asURI) {
 	    
-		OCLInternal ocl =  OCLInternal.newInstance();
-		EnvironmentFactoryInternal factory = ocl.getEnvironmentFactory();
-		factory.configureLoadFirstStrategy();
-		ResourceSet asResourceSet = ocl.getMetamodelManager().getASResourceSet();
-
-		URI oclURI = ClassUtil.nonNullState(URI.createPlatformResourceURI("/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl", true));
-
-		CompleteOCLEObjectValidator validator = new CompleteOCLEObjectValidator(ClassUtil.nonNullState(QVTcoreBasePackage.eINSTANCE), oclURI, factory);
-		validator.initialize();
-		PivotEObjectValidator.install(asResourceSet, factory);
-		PivotEObjectValidator.install(ClassUtil.nonNullState(QVTbasePackage.eINSTANCE), null);
-		PivotEObjectValidator.install(ClassUtil.nonNullState(QVTcoreBasePackage.eINSTANCE), null);
-		PivotEObjectValidator.install(ClassUtil.nonNullState(QVTimperativePackage.eINSTANCE), null);
-		assertValidModel(asURI, asResourceSet);
+		// We don't generate QVTi models anymore. Perhaps do a QVTc validation if there is a QVTcore.ocl file
 	}
 
 	protected @NonNull Transformation getTransformation(ResourceSet rSet, URI qvtiURI) {
@@ -743,4 +716,13 @@
 		return (ASResource) asResource;
 	}
 
+	private static @NonNull Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> createTestCasesCompilerOptions() {
+		Map<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>> options = new HashMap<@NonNull String, @NonNull Map<@NonNull Key<?>, @Nullable Object>>();
+		Map<@NonNull Key<?>, @Nullable Object> defStepOptions = new HashMap<@NonNull Key<?>, @Nullable Object>();
+		defStepOptions.put(OCL2QVTiCompilerChain.SAVE_OPTIONS_KEY, TestsXMLUtil.defaultSavingOptions);
+		// TODO problem hen validating  defStepOptions.put(OCL2QVTiCompilerChain.VALIDATE_KEY, true);
+		options.put(OCL2QVTiCompilerChain.DEFAULT_STEP, defStepOptions);
+		return options;
+	}
+	
 }
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/.gitignore
index ed2bb3f..65aac1a 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/.gitignore
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/.gitignore
@@ -9,3 +9,5 @@
 /Source2TargetDependencyGraph.xmi
 /SourceMM1ContainmentTree.xmi
 /TargetMM1ContainmentTree.xmi
+/Source2Target.qvtp.qvtcas
+/Source2Target.qvts.xmi
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example2/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example2/.gitignore
index 240da03..993050a 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example2/.gitignore
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example2/.gitignore
@@ -11,3 +11,7 @@
 /classescs2asV2Schedule.xmi
 /classescs2asV2.qvtias
 /classescs2asV2.qvtp.qvtias
+/classescs2as.qvtp.qvtcas
+/classescs2as.qvts.xmi
+/classescs2asV2.qvtp.qvtcas
+/classescs2asV2.qvts.xmi
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example4/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example4/.gitignore
index 6a5858f..1715b53 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example4/.gitignore
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example4/.gitignore
@@ -6,3 +6,5 @@
 /SimplerKiama.serialized.qvti
 /*ContainmentTree.xmi
 /SimplerKiamaSchedule.xmi
+/SimplerKiama.qvtp.qvtcas
+/SimplerKiama.qvts.xmi
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example5/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example5/.gitignore
index f9ed4db..e9f9c2b 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example5/.gitignore
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example5/.gitignore
@@ -15,3 +15,7 @@
 /TargetDerivedMMContainmentTree.xmi
 /*.dot
 /*.graphml
+/Source2TargetBase.qvtp.qvtcas
+/Source2TargetBase.qvts.xmi
+/Source2TargetDerived.qvtp.qvtcas
+/Source2TargetDerived.qvts.xmi
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_SimplerKiama_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_SimplerKiama_qvtp_qvtcas/.gitignore
new file mode 100644
index 0000000..5cd66bd
--- /dev/null
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_SimplerKiama_qvtp_qvtcas/.gitignore
@@ -0,0 +1 @@
+/SimplerKiama_qvtp_qvtcas.java
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetBase_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetBase_qvtp_qvtcas/.gitignore
new file mode 100644
index 0000000..00e1711
--- /dev/null
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetBase_qvtp_qvtcas/.gitignore
@@ -0,0 +1 @@
+/Source2TargetBase_qvtp_qvtcas.java
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetDerived_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetDerived_qvtp_qvtcas/.gitignore
new file mode 100644
index 0000000..5760bad
--- /dev/null
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2TargetDerived_qvtp_qvtcas/.gitignore
@@ -0,0 +1 @@
+/Source2TargetDerived_qvtp_qvtcas.java
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtcas/.gitignore
new file mode 100644
index 0000000..79082dd
--- /dev/null
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtcas/.gitignore
@@ -0,0 +1 @@
+/Source2Target_qvtp_qvtcas.java
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2asV2_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2asV2_qvtp_qvtcas/.gitignore
new file mode 100644
index 0000000..8460b46
--- /dev/null
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2asV2_qvtp_qvtcas/.gitignore
@@ -0,0 +1 @@
+/classescs2asV2_qvtp_qvtcas.java
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/.gitignore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/.gitignore
new file mode 100644
index 0000000..97be367
--- /dev/null
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_classescs2as_qvtp_qvtcas/.gitignore
@@ -0,0 +1 @@
+/classescs2as_qvtp_qvtcas.java