[570995] Adapt to single concurrent ThreadLocalExecutor limitation
diff --git a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTcompiledJob.java b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTcompiledJob.java
index 5be0459..98ba49a 100644
--- a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTcompiledJob.java
+++ b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTcompiledJob.java
@@ -30,6 +30,7 @@
import org.eclipse.ocl.pivot.resource.BasicProjectManager;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.PivotUtil;
+import org.eclipse.ocl.pivot.utilities.ThreadLocalExecutor;
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory;
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiTransformationExecutor;
import org.eclipse.qvtd.runtime.evaluation.ModelsManager;
@@ -59,6 +60,7 @@
int SAVING_TICKS = outMap.size();
int allTicks = LOAD_TX_TICKS + USED_PACKAGES_TICKS + CHECKING_TICKS + EXECUTING_TICKS + SAVING_TICKS + inMap.size() + 2 * outMap.size();
SubMonitor subMonitor = SubMonitor.convert(monitor, allTicks);
+ ThreadLocalExecutor.reset();
try {
QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(BasicProjectManager.CLASS_PATH, null);
if (traceEvaluation) {
@@ -179,6 +181,7 @@
}
finally {
monitor.done();
+ ThreadLocalExecutor.reset();
}
}
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTinterpretedJob.java b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTinterpretedJob.java
index d7ecb17..c4fb7a8 100644
--- a/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTinterpretedJob.java
+++ b/plugins/org.eclipse.qvtd.debug/src/org/eclipse/qvtd/debug/launching/QVTinterpretedJob.java
@@ -29,6 +29,7 @@
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.pivot.resource.BasicProjectManager;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
+import org.eclipse.ocl.pivot.utilities.ThreadLocalExecutor;
import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
import org.eclipse.qvtd.pivot.qvtimperative.ImperativeTransformation;
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory;
@@ -56,6 +57,7 @@
int SAVING_TICKS = outMap.size();
int allTicks = LOAD_TX_TICKS + USED_PACKAGES_TICKS + CHECKING_TICKS + EXECUTING_TICKS + SAVING_TICKS + inMap.size() + outMap.size();
SubMonitor subMonitor = SubMonitor.convert(monitor, allTicks);
+ ThreadLocalExecutor.reset();
try {
QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(BasicProjectManager.CLASS_PATH, null);
if (traceEvaluation) {
@@ -152,6 +154,7 @@
}
finally {
monitor.done();
+ ThreadLocalExecutor.reset();
}
}
}
\ No newline at end of file
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 658d655..9b326b7 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
@@ -367,8 +367,7 @@
myQVT.dispose();
cleanup("http://cs2as/tests/example2/env/1.0",
example2.classescs.ClassescsPackage.eNS_URI,
- example2.classes.ClassesPackage.eNS_URI,
- example2.classescstraces.ClassescstracesPackage.eNS_URI);
+ example2.classes.ClassesPackage.eNS_URI);
}
}
diff --git a/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXSerializeTests.java b/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXSerializeTests.java
index 9c30059..fedf854 100644
--- a/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXSerializeTests.java
+++ b/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXSerializeTests.java
@@ -111,6 +111,7 @@
umlxResource1.save(null);
//
assertNoValidationErrors(umlxURI.toString(), umlxResource1);
+ ocl1.deactivate();
//
QVTrelation ocl2 = QVTrelation.newInstance(getTestProjectManager());
Resource umlxResource2 = ocl2.getResourceSet().getResource(umlxURI, true);
diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java
index 6213c8a..063ec1c 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/AbstractTestQVT.java
@@ -283,6 +283,7 @@
}
public @NonNull Resource checkOutput(@NonNull URI actualURI, @Nullable URI expectedURI, @Nullable ModelNormalizer normalizer) throws IOException, InterruptedException {
+ deactivate();
ResourceSet actualResourceSet = createTestResourceSet();
// if (PivotUtilInternal.isASURI(modelURI)) {
// resourceSet = environmentFactory.getMetamodelManager().getASResourceSet(); // Need PivotSave to allocate xmi:ids
@@ -310,6 +311,7 @@
}
checkOutput(actualResource, expectedURI, normalizer);
}
+ activate();
return actualResource;
}
@@ -477,6 +479,7 @@
}
private void doScheduleLoadCheck(@NonNull URI uri) throws Exception {
+ deactivate();
ResourceSet resourceSet = new ResourceSetImpl();
getTestProjectManager().initializeResourceSet(resourceSet);
Resource resource = resourceSet.getResource(uri, true);
@@ -485,20 +488,23 @@
EcoreUtil.resolveAll(resource);
PivotTestCase.assertNoUnresolvedProxies("Resolve", resource);;
PivotTestCase.assertNoValidationErrors("Validate", resource);;
+ activate();
}
protected XtextResource doSerialize(@NonNull URI inputURI, @NonNull URI serializedURI) throws Exception {
+ deactivate();
ResourceSet resourceSet = new ResourceSetImpl();
+ // Executor savedExecutor = PivotUtil.basicGetExecutor();
//
// Load QVTiAS
//
OCL ocl = QVTbase.newInstance(getTestProjectManager());
ocl.getEnvironmentFactory().setSeverity(PivotPackage.Literals.VARIABLE___VALIDATE_COMPATIBLE_INITIALISER_TYPE__DIAGNOSTICCHAIN_MAP, StatusCodes.Severity.IGNORE);
+ XtextResource xtextResource = null;
try {
ASResource asResource = loadQVTiAS(ocl, inputURI);
LoadTestCase.assertNoResourceErrors("Serializing to " + serializedURI, asResource);
LoadTestCase.assertNoUnresolvedProxies("Serializing to " + serializedURI, asResource);
- XtextResource xtextResource = null;
try {
LoadTestCase.assertNoValidationErrors("Serializing to " + serializedURI, asResource);
//
@@ -514,26 +520,30 @@
catch (Throwable t) {}
throw e;
}
-
- QVTimperative qvti = QVTimperative.newInstance(getTestProjectManager(), null);
- try {
- ImperativeTransformation asTransformation = QVTimperativeUtil.loadTransformation(qvti.getEnvironmentFactory(), serializedURI, false);
- Resource asResource2 = asTransformation.eResource();
- assert asResource2 != null;
- LoadTestCase.assertNoResourceErrors("Loading " + serializedURI, asResource2);
- LoadTestCase.assertNoUnresolvedProxies("Loading " + serializedURI, asResource2);
- LoadTestCase.assertNoValidationErrors("Loading " + serializedURI, asResource2);
- }
- finally {
- qvti.dispose();
- qvti = null;
- }
- return xtextResource;
}
finally {
ocl.dispose();
ocl = null;
}
+
+ QVTimperative qvti = QVTimperative.newInstance(getTestProjectManager(), null);
+ try {
+ ImperativeTransformation asTransformation = QVTimperativeUtil.loadTransformation(qvti.getEnvironmentFactory(), serializedURI, false);
+ Resource asResource2 = asTransformation.eResource();
+ assert asResource2 != null;
+ LoadTestCase.assertNoResourceErrors("Loading " + serializedURI, asResource2);
+ LoadTestCase.assertNoUnresolvedProxies("Loading " + serializedURI, asResource2);
+ LoadTestCase.assertNoValidationErrors("Loading " + serializedURI, asResource2);
+ }
+ finally {
+ qvti.dispose();
+ qvti = null;
+ }
+ // if (savedExecutor != null) {
+ // ThreadLocalExecutor.setExecutor(savedExecutor);
+ // }
+ activate();
+ return xtextResource;
}
public boolean executeTransformation() throws Exception {
diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java
index 0b4ab96..68ae6de 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java
@@ -22,8 +22,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.WeakHashMap;
-
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
@@ -44,11 +42,11 @@
import org.eclipse.ocl.pivot.internal.resource.ASResourceImpl;
import org.eclipse.ocl.pivot.internal.utilities.EnvironmentFactoryInternal;
import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
-import org.eclipse.ocl.pivot.utilities.AbstractEnvironmentFactory;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.LabelUtil;
import org.eclipse.ocl.pivot.utilities.OCL;
import org.eclipse.ocl.pivot.utilities.PivotUtil;
+import org.eclipse.ocl.pivot.utilities.ThreadLocalExecutor;
import org.eclipse.ocl.pivot.utilities.TracingOption;
import org.eclipse.ocl.pivot.values.Value;
import org.eclipse.ocl.xtext.base.utilities.BaseCSResource;
@@ -77,16 +75,16 @@
//public static boolean DEBUG_GC = false; // True performs an enthusuastic resource release and GC at the end of each test
public static boolean DEBUG_ID = false; // True prints the start and end of each test.
{
- PivotUtilInternal.noDebug = false;
+ // PivotUtilInternal.noDebug = false;
// DEBUG_GC = true;
- DEBUG_ID = true;
- AbstractEnvironmentFactory.liveEnvironmentFactories = new WeakHashMap<>(); // Prints the create/finalize of each EnvironmentFactory
+ // DEBUG_ID = true;
+ // AbstractEnvironmentFactory.liveEnvironmentFactories = new WeakHashMap<>(); // Prints the create/finalize of each EnvironmentFactory
// PivotMetamodelManager.liveMetamodelManagers = new WeakHashMap<>(); // Prints the create/finalize of each MetamodelManager
// StandaloneProjectMap.liveStandaloneProjectMaps = new WeakHashMap<>(); // Prints the create/finalize of each StandaloneProjectMap
// ResourceSetImpl.liveResourceSets = new WeakHashMap<>(); // Requires edw-debug private EMF branch
- TEST_START.setState(true);
- AbstractEnvironmentFactory.ENVIRONMENT_FACTORY_ATTACH.setState(true);
- ThreadLocalExecutor.THREAD_LOCAL_ENVIRONMENT_FACTORY.setState(true);
+ // TEST_START.setState(true);
+ // AbstractEnvironmentFactory.ENVIRONMENT_FACTORY_ATTACH.setState(true);
+ // ThreadLocalExecutor.THREAD_LOCAL_ENVIRONMENT_FACTORY.setState(true);
}
public static @NonNull List<Diagnostic> assertDiagnostics(@NonNull String prefix, @NonNull List<Diagnostic> diagnostics, String... messages) {
@@ -402,29 +400,16 @@
PivotUtilInternal.debugPrintln("-----Starting " + getClass().getSimpleName() + "." + getName() + "-----");
}
TracingOption.resetAll();
+ ThreadLocalExecutor.reset();
ASResourceImpl.CHECK_IMMUTABILITY.setState(true);
TEST_START.println("-----Starting " + getClass().getSimpleName() + "." + getName() + "-----");
startTime = System.nanoTime();
- /* List<String> nsURIs = new ArrayList<>();
- for (EPackage ePackage : EValidator.Registry.INSTANCE.keySet()) {
- nsURIs.add(ePackage.getNsURI());
- }
- System.out.println("EValidator.Registry.INSTANCE size = " + EValidator.Registry.INSTANCE.size());
- Collections.sort(nsURIs);
- for (String nsURI : nsURIs) {
- System.out.println("\t" + nsURI);
- } */
}
-
-
-
static long startTime;
@Override
- protected void tearDown()
- throws Exception {
- // TODO Auto-generated method stub
+ protected void tearDown() throws Exception {
// long time = System.nanoTime() - startTime;
super.tearDown();
QVTruntimeUtil.contextLine = null;
@@ -435,10 +420,11 @@
newSet.removeAll(savedEPackageRegistry);
if (newSet.size() > 0) {
List<String> newList = new ArrayList<>(newSet);
- Collections.sort(savedEPackageRegistry);
+ Collections.sort(newList);
// QVTruntimeUtil.errPrintln("EPackage.Registry.INSTANCE pre-extras");
for (String nsURI : newList) {
- if (nsURI.contains("example") || nsURI.contains("test") || (!nsURI.startsWith("http://www.eclipse.org") && !nsURI.startsWith("http://www.w3.org"))) {
+ if (nsURI.contains("example") || nsURI.contains("test") // FIXME Avoid using http://www.eclipse.org for test models
+ || (!nsURI.startsWith("http://www.eclipse.org") && !nsURI.startsWith("http://www.w3.org"))) {
PivotUtilInternal.debugPrintln("Extra " + nsURI);
}
}
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java
index c0a7261..ac1b94a 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcSerializeTests.java
@@ -67,9 +67,10 @@
URI serializedPivotURI = getTestURIWithExtension(inputURI, "serialized.qvtcas");
ProjectManager projectManager = getTestProjectManager();
QVTcore ocl1 = QVTcore.newInstance(projectManager);
- QVTcore ocl2 = QVTcore.newInstance(projectManager);
Resource asResource1 = doLoad_Concrete(ocl1, inputURI, pivotURI, NO_MESSAGES);
+ ocl1.deactivate();
doSerialize(pivotURI, serializedInputURI, referenceURI, null, true, true, null);
+ QVTcore ocl2 = QVTcore.newInstance(projectManager);
Resource asResource3 = doLoad_Concrete(ocl2, serializedInputURI, serializedPivotURI, NO_MESSAGES);
((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI());
TestsXMLUtil.resetTransients(asResource1);
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java
index fd46db2..53026c3 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java
@@ -108,7 +108,6 @@
protected static class MyQVT extends OCLInternal
{
protected final @NonNull TestProject testProject;
- // private GlobalStateMemento globalStateMemento = new GlobalStateMemento();
public MyQVT(@NonNull TestProject testProject, @NonNull QVTiEnvironmentFactory environmentFactory) {
super(environmentFactory);
@@ -136,13 +135,6 @@
return executor.getTransformer();
}
- @Override
- public synchronized void dispose() {
- super.dispose();
- // globalStateMemento.restoreGlobalState();
- // globalStateMemento = null;
- }
-
public @NonNull Resource doLoad_ConcreteWithOCL(@NonNull URI inputURI) throws Exception {
URI cstURI = testProject.getOutputFile(ClassUtil.nonNullState(inputURI.appendFileExtension("xmi").lastSegment())).getURI();//TestUtil.getFileURI(getClass(), cstName);
URI pivotURI = testProject.getOutputFile(ClassUtil.nonNullState(inputURI.appendFileExtension(QVTimperativeUtil.QVTIAS_FILE_EXTENSION).lastSegment())).getURI();//TestUtil.getFileURI(getClass(), pivotName);
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiDebuggerTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiDebuggerTests.java
index c2b2d2e..f5333b4 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiDebuggerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiDebuggerTests.java
@@ -219,6 +219,7 @@
ILaunchConfigurationWorkingCopy launchConfiguration = createLaunchConfiguration(testProject, "HSV2HSL", txFile, inMap, outMap);
launchConfiguration.doSave();
+ ocl.deactivate();
TestUIUtil.flushEvents();
ILaunch launch = launchConfiguration.launch(ILaunchManager.DEBUG_MODE, null);
assert launch != null;
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java
index 9755e50..815c0bd 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java
@@ -37,6 +37,7 @@
import org.eclipse.qvtd.compiler.QVTiCompilerChain;
import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphMLBuilder;
import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphMLStringBuilder;
+import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbase;
import org.eclipse.qvtd.pivot.qvtimperative.ImperativeTransformation;
import org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage;
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.BasicQVTiExecutor;
@@ -126,8 +127,10 @@
assertEquals(expected, actual);
}
- protected void assertLoadable(@NonNull URI asURI) throws Exception {
+ protected void assertLoadable(@NonNull QVTbase qvt, @NonNull URI asURI) throws Exception {
+ qvt.deactivate();
assertLoadable(getTestProject(), asURI);
+ qvt.activate();
}
protected void assertLoadable(@NonNull TestProject testProject, @NonNull URI asURI) throws Exception {
@@ -191,7 +194,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("upperGraph", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -222,7 +225,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("upperGraph", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -237,7 +240,7 @@
@Test
public void testQVTiInterpreter_Graph2GraphHierarchicalLoad() throws Exception {
URI asURI = getModelsURI("Graph2GraphHierarchical" + "/" + "Graph2GraphHierarchical.ref.qvtias");
- assertLoadable(asURI);
+ assertLoadable(getTestProject(), asURI);
}
/**
@@ -256,7 +259,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("hsv", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -282,7 +285,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("tree", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -310,7 +313,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("tree", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -344,7 +347,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("uml", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -382,7 +385,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("uml", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -408,7 +411,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("leftCS", inputURI);
assertTrue(myQVT.executeTransformation());
@@ -431,7 +434,7 @@
ImperativeTransformation iTransformation = myQVT.loadTransformation();
BasicQVTiExecutor testEvaluator = myQVT.createInterpretedExecutor(iTransformation);
testEvaluator.saveTransformation(txASURI, null);
- assertLoadable(txASURI);
+ assertLoadable(myQVT, txASURI);
//
myQVT.addInputURI("leftCS", inputURI);
assertTrue(myQVT.executeTransformation());
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java
index 62ee959..4c4fecf 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiSerializeTests.java
@@ -53,9 +53,10 @@
URI serializedPivotURI = getTestURIWithExtension(inputURI, "serialized.qvtias");
ProjectManager projectManager = getTestProjectManager();
OCL ocl1 = QVTimperative.newInstance(projectManager, null);
- OCL ocl2 = QVTimperative.newInstance(projectManager, null);
Resource asResource1 = doLoad_Concrete(ocl1, inputURI, pivotURI, NO_MESSAGES);
+ ocl1.deactivate();
doSerialize(pivotURI, serializedInputURI, referenceURI, null, true, true);
+ OCL ocl2 = QVTimperative.newInstance(projectManager, null);
Resource asResource3 = doLoad_Concrete(ocl2, serializedInputURI, serializedPivotURI, NO_MESSAGES);
((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI());
TestsXMLUtil.resetTransients(asResource1);
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 05f096e..75132c5 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
@@ -44,6 +44,7 @@
import org.eclipse.ocl.pivot.model.OCLstdlib;
import org.eclipse.ocl.pivot.resource.ProjectManager;
import org.eclipse.ocl.pivot.utilities.OCL;
+import org.eclipse.ocl.pivot.utilities.ThreadLocalExecutor;
import org.eclipse.ocl.pivot.utilities.ToStringVisitor;
import org.eclipse.ocl.pivot.utilities.XMIUtil;
import org.eclipse.qvtd.compiler.CompilerChain;
@@ -57,7 +58,6 @@
import org.eclipse.qvtd.compiler.internal.qvtb2qvts.ConnectivityChecker;
import org.eclipse.qvtd.compiler.internal.qvtb2qvts.ScheduleManager;
import org.eclipse.qvtd.compiler.internal.qvtm2qvts.QVTm2QVTs;
-import org.eclipse.qvtd.compiler.internal.qvts2qvts.partitioner.TransformationPartitioner;
import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbaseUtil;
import org.eclipse.qvtd.pivot.qvtimperative.ImperativeTransformation;
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.BasicQVTiExecutor;
@@ -853,6 +853,7 @@
finally {
myQVT1.dispose();
}
+ ThreadLocalExecutor.waitForGC();
URI asURI2a = getTestURI("Families2.ecore.oclas");
URI ecoreURI = getModelsURI("ecore2pivotRoot/Families.ecore");
OCL ocl = OCL.newInstance(projectManager);
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java
index 35a5d3d..614e7e7 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java
@@ -120,6 +120,7 @@
outMap.put(middleName, middleFile.getURI().toString());
ILaunchConfigurationWorkingCopy launchConfiguration = createLaunchConfiguration(testProject, "Forward2Reverse", txFile, "reverse", inMap, outMap, true);
launchConfiguration.doSave();
+ ocl.deactivate();
TestUIUtil.flushEvents();
ILaunch launch = launchConfiguration.launch(ILaunchManager.RUN_MODE, null, true);
assert launch != null;
@@ -149,7 +150,6 @@
normalizer.normalize(actualResource);
// }
TestUtil.assertSameModel(expectedResource, actualResource);
-
ocl.dispose();
}
@@ -181,6 +181,7 @@
outMap.put(middleName, middleFile.getURI().toString());
ILaunchConfigurationWorkingCopy launchConfiguration = createLaunchConfiguration(testProject, "Forward2Reverse", txFile, "reverse", inMap, outMap, true);
launchConfiguration.doSave();
+ ocl.deactivate();
TestUIUtil.flushEvents();
ILaunch launch = launchConfiguration.launch(ILaunchManager.RUN_MODE, null, true);
assert launch != null;
@@ -221,6 +222,7 @@
outMap.put(middleName, middleFile.getURI().toString());
ILaunchConfigurationWorkingCopy launchConfiguration = createLaunchConfiguration(testProject, "Forward2Reverse", txFile, "reverse", inMap, outMap, true);
launchConfiguration.doSave();
+ ocl.deactivate();
TestUIUtil.flushEvents();
ILaunch launch = launchConfiguration.launch(ILaunchManager.RUN_MODE, null, true);
assert launch != null;
@@ -298,6 +300,7 @@
outMap.put(middleName, middleFile.getURI().toString());
ILaunchConfigurationWorkingCopy launchConfiguration = createLaunchConfiguration(testProject, "HierarchicalStateMachine2FlatStateMachine", txFile, "flat", inMap, outMap, true);
launchConfiguration.doSave();
+ ocl.deactivate();
TestUIUtil.flushEvents();
ILaunch launch = launchConfiguration.launch(ILaunchManager.RUN_MODE, null, true);
assert launch != null;
@@ -352,6 +355,7 @@
outMap.put(middleName, middleFile.getURI().toString());
ILaunchConfigurationWorkingCopy launchConfiguration = createLaunchConfiguration(testProject, "HierarchicalStateMachine2FlatStateMachine", txFile, "flat", inMap, outMap, false);
launchConfiguration.doSave();
+ ocl.deactivate();
TestUIUtil.flushEvents();
ILaunch launch = launchConfiguration.launch(ILaunchManager.RUN_MODE, null, true);
assert launch != null;
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrSerializeTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrSerializeTests.java
index 1b7b359..587330b 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrSerializeTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrSerializeTests.java
@@ -63,9 +63,10 @@
URI serializedPivotURI = getTestURIWithExtension(inputURI, "serialized.qvtras");
ProjectManager projectManager = getTestProjectManager();
QVTrelation ocl1 = QVTrelation.newInstance(projectManager, null);
- QVTrelation ocl2 = QVTrelation.newInstance(projectManager, null);
Resource asResource1 = doLoad_Concrete(ocl1, inputURI, pivotURI, null);
+ ocl1.deactivate();
doSerialize(pivotURI, serializedInputURI, referenceURI, null, true, true, messages);
+ QVTrelation ocl2 = QVTrelation.newInstance(projectManager, null);
Resource asResource3 = doLoad_Concrete(ocl2, serializedInputURI, serializedPivotURI, null);
((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI());
TestsXMLUtil.resetTransients(asResource1);
@@ -83,9 +84,10 @@
URI serializedPivotURI = getTestURIWithExtension(inputURI, "serialized.qvtras");
ProjectManager projectManager = getTestProjectManager();
OCL ocl1 = OCL.newInstance(projectManager);//, null);
- QVTrelation ocl2 = QVTrelation.newInstance(projectManager);
Resource asResource1 = doLoad_Concrete(ocl1, inputURI, pivotURI, null);
+ ocl1.deactivate();
doSerialize(pivotURI, serializedInputURI, referenceURI, null, true, true, messages);
+ QVTrelation ocl2 = QVTrelation.newInstance(projectManager);
Resource asResource3 = doLoad_Concrete(ocl2, serializedInputURI, serializedPivotURI, null);
((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI());
TestsXMLUtil.resetTransients(asResource1);
@@ -103,9 +105,10 @@
URI serializedPivotURI = getTestURIWithExtension(inputURI, "serialized.qvtras");
ProjectManager projectManager = getTestProjectManager();
OCL ocl1 = OCL.newInstance(projectManager);//, null);
- OCL ocl2 = OCL.newInstance(projectManager);
Resource asResource1 = doLoad_Concrete(ocl1, inputURI, pivotURI, NO_MESSAGES);
+ ocl1.deactivate();
doSerialize(pivotURI, serializedInputURI, referenceURI, null, true, true, messages);
+ OCL ocl2 = OCL.newInstance(projectManager);
Resource asResource3 = doLoad_Concrete(ocl2, serializedInputURI, serializedPivotURI, NO_MESSAGES);
((Model)asResource3.getContents().get(0)).setExternalURI(((Model)asResource1.getContents().get(0)).getExternalURI());
TestsXMLUtil.resetTransients(asResource1);