Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2018-04-22 07:18:26 +0000
committerEd Willink2018-04-22 09:38:38 +0000
commit8dbee5849b9f54fba93475f9fc29963b3e110bab (patch)
tree53566ecfe9f825e0a1a46f339b2a5f9001e4fdca
parentff4bf81b1322699a107e4f9b850c7658c8942111 (diff)
downloadorg.eclipse.qvtd-8dbee5849b9f54fba93475f9fc29963b3e110bab.tar.gz
org.eclipse.qvtd-8dbee5849b9f54fba93475f9fc29963b3e110bab.tar.xz
org.eclipse.qvtd-8dbee5849b9f54fba93475f9fc29963b3e110bab.zip
[unrelated] Avoid deleting Java files in double compilation test
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/CompilerChain.java1
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/GenModelGenerateCompilerStep.java16
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationClass.java2
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationInterface.java2
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2TraceInterface.java2
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/emf-gen/example2/classes/lookup/util/OperationFilter.java5
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java24
7 files changed, 32 insertions, 20 deletions
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/CompilerChain.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/CompilerChain.java
index 3258f400a..e80d9e717 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/CompilerChain.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/CompilerChain.java
@@ -53,6 +53,7 @@ public interface CompilerChain
public static final CompilerOptions.@NonNull Key<@NonNull String> GENMODEL_MODEL_DIRECTORY_KEY = new CompilerOptions.Key<>("genmodel-model-directory");
public static final CompilerOptions.@NonNull Key<@NonNull Map<@NonNull String, @Nullable String>> GENMODEL_OPTIONS_KEY = new CompilerOptions.Key<>("genmodel-options");
public static final CompilerOptions.@NonNull Key<@Nullable Collection<@NonNull ? extends GenPackage>> GENMODEL_USED_GENPACKAGES_KEY = new CompilerOptions.Key<>("genmodel-usedGenPackages");;
+ public static final CompilerOptions.@NonNull Key<@NonNull Boolean> KEEP_OLD_JAVA_FILES_KEY = new CompilerOptions.Key<>("keep-old-java-files");
public static final CompilerOptions.@NonNull Key<@NonNull Map<@NonNull String, @Nullable String>> TRACE_OPTIONS_KEY = new CompilerOptions.Key<>("trace-options");
public static final CompilerOptions.@NonNull Key<@NonNull Map<Object, Object>> SAVE_OPTIONS_KEY = new CompilerOptions.Key<>("save");
public static final CompilerOptions.@NonNull Key<@NonNull Map<CompilerOptions.@NonNull Key<? extends Object>, @Nullable Object>> SCHEDULER_OPTIONS_KEY = new CompilerOptions.Key<>("scheduler-options");
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/GenModelGenerateCompilerStep.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/GenModelGenerateCompilerStep.java
index e093179ce..bb86a8e37 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/GenModelGenerateCompilerStep.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/GenModelGenerateCompilerStep.java
@@ -41,8 +41,7 @@ import org.eclipse.ocl.examples.codegen.dynamic.JavaFileUtil;
import org.eclipse.ocl.examples.codegen.oclinecore.OCLinEcoreGeneratorAdapterFactory;
import org.eclipse.qvtd.compiler.internal.genmodel.QVTdGenModelGeneratorAdapterFactory;
import org.eclipse.qvtd.compiler.internal.qvtr2qvtc.QVTr2QVTc;
-
-import com.google.common.collect.Lists;
+import org.eclipse.qvtd.compiler.internal.utilities.CompilerUtil;
/**
* GenModelCompilerStep activates the EMG GenModel tooling to generate the Java classes from the
@@ -101,6 +100,7 @@ public class GenModelGenerateCompilerStep extends AbstractCompilerStep
}
public void execute() throws IOException {
+ Boolean keepOldJavaFiles = compilerChain.basicGetOption(QVTrCompilerChain.GENMODEL_STEP, QVTrCompilerChain.KEEP_OLD_JAVA_FILES_KEY);
URI genmodelURI = compilerChain.getURI(QVTrCompilerChain.GENMODEL_STEP, QVTrCompilerChain.URI_KEY);
Resource genmodelResource = environmentFactory.getResourceSet().getResource(genmodelURI, true);
assert genmodelResource != null;
@@ -124,7 +124,7 @@ public class GenModelGenerateCompilerStep extends AbstractCompilerStep
File genFile = URIUtil.toFile(genIFile.getLocationURI());
sourceFilePathPrefix = genFile.getAbsolutePath().replace("\\", "/");
if (classProjectNames == null) {
- classProjectNames = Lists.newArrayList(binProjectName, "org.eclipse.emf.common", "org.eclipse.emf.ecore", "org.eclipse.jdt.annotation", "org.eclipse.ocl.pivot", "org.eclipse.osgi", "org.eclipse.qvtd.runtime");
+ classProjectNames = CompilerUtil.createClasspathProjectNameList(binProjectName);
}
classpathProjects = JavaFileUtil.createClassPathProjectList(environmentFactory.getResourceSet().getURIConverter(), classProjectNames);
}
@@ -139,10 +139,12 @@ public class GenModelGenerateCompilerStep extends AbstractCompilerStep
classpathProjects = null;
}
assert classFilePath != null;
- for (GenPackage genPackage : genModel.getGenPackages()) {
- String basePackage = genPackage.getBasePackage();
- String sourcePath = sourceFilePathPrefix + (basePackage != null ? ("/" + basePackage.replace(".", "/")) : "");
- JavaFileUtil.deleteJavaFiles(sourcePath);
+ if (keepOldJavaFiles != Boolean.TRUE) {
+ for (GenPackage genPackage : genModel.getGenPackages()) {
+ String basePackage = genPackage.getBasePackage();
+ String sourcePath = sourceFilePathPrefix + (basePackage != null ? ("/" + basePackage.replace(".", "/")) : "");
+ JavaFileUtil.deleteJavaFiles(sourcePath);
+ }
}
generateModels(genModel);
new File(classFilePath).mkdirs();
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationClass.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationClass.java
index f63af1977..87f61487c 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationClass.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationClass.java
@@ -53,7 +53,7 @@ public class Relation2InvocationClass extends AbstractRelation2MiddleType
if (overriddenRelation == null) {
return null;
}
- RelationDomain rootVariableDomain = QVTrelationUtil.getRootVariableDomain((Variable) variable);
+ RelationDomain rootVariableDomain = QVTrelationUtil.getRootVariableDomain(variable);
List<@NonNull Variable> rootVariables = QVTrelationUtil.getRootVariables(rootVariableDomain);
int rootVariableIndex = rootVariables.indexOf(variable);
if (rootVariableIndex < 0) {
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationInterface.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationInterface.java
index c3e3d387a..41fff4ee2 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationInterface.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2InvocationInterface.java
@@ -65,7 +65,7 @@ public class Relation2InvocationInterface extends AbstractRelation2MiddleType
if (overriddenRelation == null) {
return null;
}
- RelationDomain rootVariableDomain = QVTrelationUtil.getRootVariableDomain((Variable) variable);
+ RelationDomain rootVariableDomain = QVTrelationUtil.getRootVariableDomain(variable);
List<@NonNull Variable> rootVariables = QVTrelationUtil.getRootVariables(rootVariableDomain);
int rootVariableIndex = rootVariables.indexOf(variable);
if (rootVariableIndex < 0) {
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2TraceInterface.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2TraceInterface.java
index 437753bef..dbf34a370 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2TraceInterface.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/trace/Relation2TraceInterface.java
@@ -56,7 +56,7 @@ class Relation2TraceInterface extends AbstractRelation2MiddleType
if (overriddenRelation == null) {
return null;
}
- RelationDomain rootVariableDomain = QVTrelationUtil.getRootVariableDomain((Variable) variable);
+ RelationDomain rootVariableDomain = QVTrelationUtil.getRootVariableDomain(variable);
List<@NonNull Variable> rootVariables = QVTrelationUtil.getRootVariables(rootVariableDomain);
int rootVariableIndex = rootVariables.indexOf(variable);
if (rootVariableIndex < 0) {
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/emf-gen/example2/classes/lookup/util/OperationFilter.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/emf-gen/example2/classes/lookup/util/OperationFilter.java
index 39463b49d..400bc4127 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/emf-gen/example2/classes/lookup/util/OperationFilter.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/emf-gen/example2/classes/lookup/util/OperationFilter.java
@@ -15,7 +15,6 @@ import example2.classes.Operation;
import example2.classes.Parameter;
import example2.classes.lookup.util.AbstractClassesLookupFilter;
import java.util.Iterator;
-import java.util.List;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.pivot.TypedElement;
@@ -33,7 +32,7 @@ import org.eclipse.ocl.pivot.utilities.ValueUtil;
import org.eclipse.ocl.pivot.values.InvalidValueException;
public class OperationFilter
- extends AbstractClassesLookupFilter<Operation>
+extends AbstractClassesLookupFilter<Operation>
{
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_cs2as_s_tests_s_example2_s_classes_s_1_0 = IdManager.getNsURIPackageId("http://cs2as/tests/example2/classes/1.0", null, ClassesPackage.eINSTANCE);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull RootPackageId PACKid_java_c_s_s_example2_classes_lookup_util = IdManager.getRootPackageId("java://example2.classes.lookup.util");
@@ -76,7 +75,7 @@ public class OperationFilter
@Override
public @Nullable Object basicEvaluate(@NonNull Executor executor, @NonNull TypedElement caller, @Nullable Object @NonNull [] sourceAndArgumentValues) {
@SuppressWarnings("null") final /*@NonInvalid*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Operation element_0 = (/*@NonInvalid*/ example2.classes.@org.eclipse.jdt.annotation.NonNull Operation)sourceAndArgumentValues[0];
- final /*@NonInvalid*/ java.util.@org.eclipse.jdt.annotation.NonNull List<Argument> args = (List<Argument>)OperationFilter.this.args;
+ final /*@NonInvalid*/ java.util.@org.eclipse.jdt.annotation.NonNull List<Argument> args = OperationFilter.this.args;
@SuppressWarnings("null")
final /*@NonInvalid*/ java.util.@org.eclipse.jdt.annotation.NonNull List<Parameter> ownedParameters = element_0.getOwnedParameters();
final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull OrderedSetValue BOXED_args_0 = idResolver.createOrderedSetOfAll(ORD_CLSSid_Argument, args);
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 a556827ac..e66c0561a 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
@@ -31,6 +31,7 @@ import org.eclipse.ocl.pivot.model.OCLstdlib;
import org.eclipse.ocl.pivot.resource.ProjectManager;
import org.eclipse.ocl.pivot.utilities.ToStringVisitor;
import org.eclipse.ocl.xtext.base.services.BaseLinkingService;
+import org.eclipse.qvtd.compiler.CompilerChain;
import org.eclipse.qvtd.compiler.CompilerOptions;
import org.eclipse.qvtd.compiler.QVTrCompilerChain;
import org.eclipse.qvtd.compiler.internal.qvtb2qvts.ConnectivityChecker;
@@ -68,13 +69,6 @@ public class QVTrCompilerTests extends LoadTestCase
}
@Override
- public @NonNull ImperativeTransformation compile(@NonNull String enforcedOutputName) throws IOException {
- ImperativeTransformation asTransformation = super.compile(enforcedOutputName);
- // compilerChain.throwCompilerChainExceptionForWarnings();
- return asTransformation;
- }
-
- @Override
protected @NonNull QVTr2QVTsCompilerStep createQVTr2QVTsCompilerStep() {
return new QVTr2QVTsCompilerStep(this)
{
@@ -88,11 +82,22 @@ public class QVTrCompilerTests extends LoadTestCase
}
}
+ private boolean keepOldJavaFiles = false;
+
public MyQVT(@NonNull ProjectManager projectManager, @NonNull String testProjectName, @NonNull URI testBundleURI, @NonNull URI txURI, @NonNull URI intermediateFileNamePrefixURI, @NonNull URI srcFileURI, @NonNull URI binFileURI) {
super(projectManager, testProjectName, testBundleURI, txURI, intermediateFileNamePrefixURI, srcFileURI, binFileURI);
}
@Override
+ protected @NonNull CompilerOptions createBuildCompilerChainOptions(boolean isIncremental) {
+ CompilerOptions options = super.createBuildCompilerChainOptions(isIncremental);
+ if (keepOldJavaFiles) {
+ options.setOption(CompilerChain.GENMODEL_STEP, CompilerChain.KEEP_OLD_JAVA_FILES_KEY, Boolean.TRUE);
+ }
+ return options;
+ }
+
+ @Override
protected @NonNull QVTrCompilerChain createCompilerChain(@NonNull URI txURI, @NonNull URI intermediateFileNamePrefixURI, @NonNull CompilerOptions options) {
return new InstrumentedCompilerChain(getEnvironmentFactory(), txURI, intermediateFileNamePrefixURI, options);
}
@@ -111,6 +116,10 @@ public class QVTrCompilerTests extends LoadTestCase
protected @NonNull ProjectManager getTestProjectManager() throws Exception {
return EMFPlugin.IS_ECLIPSE_RUNNING ? new ProjectMap(true) : QVTrCompilerTests.this.getTestProjectManager();
}
+
+ protected void setKeepOldJavaFiles() {
+ this.keepOldJavaFiles = true;
+ }
}
protected static class PivotQVTrelationToStringFactory implements QVTtemplateToStringVisitor.Factory
@@ -251,6 +260,7 @@ public class QVTrCompilerTests extends LoadTestCase
}
Class<? extends Transformer> txClass3;
MyQVT myQVT3 = createQVT("Families2Persons", txURI2);
+ myQVT3.setKeepOldJavaFiles();
// MyQVT myQVT3 = new MyQVT(createTestProjectManager(), getTestBundleURI(), "models/families2persons", "samples");
// myQVT3.addRegisteredPackage("org.eclipse.qvtd.xtext.qvtrelation.tests.models.families2persons.Families.FamiliesPackage");
// myQVT3.addRegisteredPackage("org.eclipse.qvtd.xtext.qvtrelation.tests.models.families2persons.Persons.PersonsPackage");

Back to the top