[unrelated] Promote TreeIterable from QVTd to OCL
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvtp/QVTm2QVTp.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvtp/QVTm2QVTp.java
index 65504c6..f7fc7f8 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvtp/QVTm2QVTp.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvtp/QVTm2QVTp.java
@@ -20,9 +20,9 @@
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.pivot.utilities.TracingOption;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.compiler.CompilerConstants;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtcore.CoreModel;
 import org.eclipse.qvtd.pivot.qvtimperative.utilities.QVTimperativeUtil;
 
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AssignmentSorter.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AssignmentSorter.java
index 8b4f8a7..5826797 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AssignmentSorter.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AssignmentSorter.java
@@ -30,7 +30,7 @@
 import org.eclipse.ocl.pivot.VariableExp;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
 import org.eclipse.ocl.pivot.utilities.PivotUtil;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
 import org.eclipse.qvtd.pivot.qvtcorebase.CorePattern;
 import org.eclipse.qvtd.pivot.qvtcorebase.NavigationAssignment;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTr2QVTc.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTr2QVTc.java
index 958baba..dc6cd35 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTr2QVTc.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTr2QVTc.java
@@ -72,6 +72,7 @@
 import org.eclipse.ocl.pivot.utilities.EnvironmentFactory;
 import org.eclipse.ocl.pivot.utilities.NameUtil;
 import org.eclipse.ocl.pivot.utilities.TracingOption;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.compiler.CompilerChain;
 import org.eclipse.qvtd.compiler.CompilerChainException;
 import org.eclipse.qvtd.compiler.CompilerConstants;
@@ -86,7 +87,6 @@
 import org.eclipse.qvtd.pivot.qvtbase.Transformation;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
 import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbaseUtil;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtcore.CoreModel;
 import org.eclipse.qvtd.pivot.qvtcore.Mapping;
 import org.eclipse.qvtd.pivot.qvtcore.QVTcoreFactory;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java
index 71b375a..feddd2f5 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java
@@ -28,12 +28,12 @@
 import org.eclipse.ocl.pivot.VariableDeclaration;
 import org.eclipse.ocl.pivot.VariableExp;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.compiler.internal.utilities.CompilerUtil;
 import org.eclipse.qvtd.pivot.qvtbase.Domain;
 import org.eclipse.qvtd.pivot.qvtbase.Pattern;
 import org.eclipse.qvtd.pivot.qvtbase.Predicate;
 import org.eclipse.qvtd.pivot.qvtbase.Rule;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtrelation.DomainPattern;
 import org.eclipse.qvtd.pivot.qvtrelation.Relation;
 import org.eclipse.qvtd.pivot.qvtrelation.RelationCallExp;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java
index a24d5dd..a15d573 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java
@@ -32,12 +32,12 @@
 import org.eclipse.ocl.pivot.VariableDeclaration;
 import org.eclipse.ocl.pivot.VariableExp;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.compiler.CompilerChainException;
 import org.eclipse.qvtd.pivot.qvtbase.Domain;
 import org.eclipse.qvtd.pivot.qvtbase.Predicate;
 import org.eclipse.qvtd.pivot.qvtbase.Transformation;
 import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbaseUtil;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtcore.Mapping;
 import org.eclipse.qvtd.pivot.qvtcore.utilities.QVTcoreHelper;
 import org.eclipse.qvtd.pivot.qvtcore.utilities.QVTcoreUtil;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTi.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTi.java
index 36a1f02..3e31316 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTi.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTi.java
@@ -32,12 +32,12 @@
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
 import org.eclipse.ocl.pivot.utilities.NameUtil;
 import org.eclipse.ocl.pivot.utilities.PivotUtil;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.compiler.internal.qvtp2qvts.RootScheduledRegion;
 import org.eclipse.qvtd.compiler.internal.qvtp2qvts.QVTp2QVTs;
 import org.eclipse.qvtd.compiler.internal.utilities.SymbolNameReservation;
 import org.eclipse.qvtd.pivot.qvtbase.Transformation;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
 import org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage;
 import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory;
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java b/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java
index 46882c8..9e8a931 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java
@@ -53,6 +53,7 @@
 import org.eclipse.ocl.pivot.utilities.EnvironmentFactory;
 import org.eclipse.ocl.pivot.utilities.NameUtil;
 import org.eclipse.ocl.pivot.utilities.PivotUtil;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtbase.BaseModel;
 import org.eclipse.qvtd.pivot.qvtbase.Domain;
 import org.eclipse.qvtd.pivot.qvtbase.Function;
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/TreeIterable.java b/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/TreeIterable.java
deleted file mode 100644
index e3cf833..0000000
--- a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/TreeIterable.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 Willink Transformations and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     E.D.Willink - initial API and implementation
- *******************************************************************************/
-package org.eclipse.qvtd.pivot.qvtbase.utilities;
-
-import org.eclipse.emf.common.util.TreeIterator;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-
-/**
- * A TreeIterable supports use of the TreeIterator returned by Resource.getAllConrents() or EObject.eAllContents()
- * as a conventional Iterable.
- * The includeRoot option supports inclusion of the root object as is often more useful than the default
- * exclusion by a TreeIterator.
- */
-public class TreeIterable implements Iterable<@NonNull EObject>
-{
-	private static class Iterator implements java.util.Iterator<@NonNull EObject>
-	{
-		protected @Nullable EObject firstEObject;
-		protected final @NonNull TreeIterator<@NonNull EObject> tit;
-
-		public Iterator(@NonNull EObject rootEObject, boolean includeRoot) {
-			this.firstEObject = includeRoot ? rootEObject : null;
-			@SuppressWarnings("null")
-			@NonNull TreeIterator<@NonNull EObject> eAllContents = (@NonNull TreeIterator<@NonNull EObject>)rootEObject.eAllContents();
-			this.tit = eAllContents;
-		}
-
-		@Override
-		public boolean hasNext() {
-			return (firstEObject != null) || tit.hasNext();
-		}
-
-		@Override
-		public @NonNull EObject next() {
-			@NonNull EObject eObject;
-			if (firstEObject != null) {
-				eObject = firstEObject;
-				firstEObject = null;
-			}
-			else {
-				eObject = tit.next();
-			}
-			return eObject;
-		}
-	}
-
-	protected final @Nullable Resource resource;
-	protected final @Nullable EObject rootEObject;
-	protected final boolean includeRoot;
-
-	public TreeIterable(@NonNull EObject rootEObject, boolean includeRoot) {
-		this.resource = null;
-		this.rootEObject = rootEObject;
-		this.includeRoot = includeRoot;
-	}
-
-	public TreeIterable(@NonNull Resource resource) {
-		this.resource = resource;
-		this.rootEObject = null;
-		this.includeRoot = false;
-	}
-
-	@Override
-	public java.util.@NonNull Iterator<@NonNull EObject> iterator() {
-		if (resource != null) {
-			@SuppressWarnings("null")
-			@NonNull TreeIterator<@NonNull EObject> allContents = (@NonNull TreeIterator<@NonNull EObject>)resource.getAllContents();
-			return allContents;
-		}
-		else {
-			assert rootEObject != null;
-			return new Iterator(rootEObject, includeRoot);
-		}
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/AssignmentComparator.java b/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/AssignmentComparator.java
index cff3029..dca80d6 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/AssignmentComparator.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/AssignmentComparator.java
@@ -26,7 +26,7 @@
 import org.eclipse.ocl.pivot.VariableDeclaration;
 import org.eclipse.ocl.pivot.VariableExp;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
 import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment;
 import org.eclipse.qvtd.pivot.qvtcorebase.VariableAssignment;
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/QVTcoreBaseUtil.java b/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/QVTcoreBaseUtil.java
index 207976c..03594a8 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/QVTcoreBaseUtil.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtcorebase/src/org/eclipse/qvtd/pivot/qvtcorebase/utilities/QVTcoreBaseUtil.java
@@ -25,11 +25,11 @@
 import org.eclipse.ocl.pivot.VariableDeclaration;
 import org.eclipse.ocl.pivot.VariableExp;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtbase.Domain;
 import org.eclipse.qvtd.pivot.qvtbase.Rule;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
 import org.eclipse.qvtd.pivot.qvtbase.utilities.QVTbaseUtil;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtcorebase.AbstractMapping;
 import org.eclipse.qvtd.pivot.qvtcorebase.Area;
 import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java
index f62cae3..37bed9a 100644
--- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java
+++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java
@@ -17,13 +17,10 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.m2m.qvt.oml.BasicModelExtent;
-import org.eclipse.m2m.qvt.oml.ModelExtent;
 import org.eclipse.ocl.pivot.resource.ProjectManager;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator;
 import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog;
-import org.eclipse.qvtd.doc.bigmde2016.tests.qvto.QVToSimpleUMLGenerator;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePivotStandaloneSetup;
 import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory;
 import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiTransformationExecutor;
@@ -43,33 +40,35 @@
  * Source code for CG results in BigMDE 2016, Eclipse QVTC First Results paper.
  */
 public class BigMDE2016CGTests extends TestCase
-{ 
+{
 	public static void garbageCollect() throws InterruptedException {
 		for (int y = 0; y < 5; y++) {
 			System.gc();
 			Thread.sleep(100);
 		}
 	}
-	
+
+	@Override
 	@Before
-    public void setUp() throws Exception {
+	public void setUp() throws Exception {
 		super.setUp();
 		QVTimperativePivotStandaloneSetup.doSetup();
-    }
+	}
 
-    @After
-    public void tearDown() throws Exception {
+	@Override
+	@After
+	public void tearDown() throws Exception {
 		super.tearDown();
-    }
-    
-    @Test
-    public void testQVTcCompiler_Families_EcoreUtilCopy() throws Exception {
-    	PrintAndLog logger = new PrintAndLog("results/" + getName());
-    	logger.printf("%s\n", getName());
+	}
+
+	@Test
+	public void testQVTcCompiler_Families_EcoreUtilCopy() throws Exception {
+		PrintAndLog logger = new PrintAndLog("results/" + getName());
+		logger.printf("%s\n", getName());
 		QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(ProjectManager.NO_PROJECTS, null);
 		try {
-	        int[] tests = PrintAndLog.getTestSizes();
-	        for (int testSize : tests) {
+			int[] tests = PrintAndLog.getTestSizes();
+			for (int testSize : tests) {
 				Collection<@NonNull ? extends EObject> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9);
 				garbageCollect();
 				logger.printf("%9d, ", 10*testSize);
@@ -78,22 +77,22 @@
 				long endTime = System.nanoTime();
 				logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9);
 				assert rootObjects2.size() == testSize;
-	        }
+			}
 		}
 		finally {
 			environmentFactory.dispose();
 			logger.dispose();
 		}
 	}
-    
-    @Test
-    public void testQVTcCompiler_Families2Persons_CG() throws Exception {
-    	PrintAndLog logger = new PrintAndLog(getName());
-    	logger.printf("%s\n", getName());
+
+	@Test
+	public void testQVTcCompiler_Families2Persons_CG() throws Exception {
+		PrintAndLog logger = new PrintAndLog(getName());
+		logger.printf("%s\n", getName());
 		QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(ProjectManager.NO_PROJECTS, null);
 		try {
-	        int[] tests = PrintAndLog.getTestSizes();
-	        for (int testSize : tests) {
+			int[] tests = PrintAndLog.getTestSizes();
+			for (int testSize : tests) {
 				Iterable<@NonNull ? extends Object> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9);
 				QVTiTransformationExecutor generatedExecutor = new QVTiTransformationExecutor(environmentFactory, Families2Persons.class);
 				Transformer transformer = generatedExecutor.getTransformer();
@@ -106,22 +105,22 @@
 				logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9);
 				Collection<@NonNull Object> rootObjects2 = transformer.getRootObjects("person");
 				assert rootObjects2.size() == 9*testSize;
-	        }
+			}
 		}
 		finally {
 			environmentFactory.dispose();
 			logger.dispose();
 		}
 	}
-    
-    @Test
-    public void testQVTcCompiler_Families2Persons_ManualInPlace() throws Exception {
-    	PrintAndLog logger = new PrintAndLog(getName());
-    	logger.printf("%s\n", getName());
+
+	@Test
+	public void testQVTcCompiler_Families2Persons_ManualInPlace() throws Exception {
+		PrintAndLog logger = new PrintAndLog(getName());
+		logger.printf("%s\n", getName());
 		QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(ProjectManager.NO_PROJECTS, null);
 		try {
-	        int[] tests = PrintAndLog.getTestSizes();
-	        for (int testSize : tests) {
+			int[] tests = PrintAndLog.getTestSizes();
+			for (int testSize : tests) {
 				Iterable<@NonNull ? extends EObject> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9);
 				garbageCollect();
 				logger.printf("%9d, ", 10*testSize);
@@ -137,21 +136,21 @@
 				long endTime = System.nanoTime();
 				logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9);
 				assert members.size() == 9*testSize;
-	        }
+			}
 		}
 		finally {
 			environmentFactory.dispose();
 			logger.dispose();
 		}
 	}
-    @Test
-    public void testQVTcCompiler_Families2Persons_ManualCopy() throws Exception {
-    	PrintAndLog logger = new PrintAndLog(getName());
-    	logger.printf("%s\n", getName());
+	@Test
+	public void testQVTcCompiler_Families2Persons_ManualCopy() throws Exception {
+		PrintAndLog logger = new PrintAndLog(getName());
+		logger.printf("%s\n", getName());
 		QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(ProjectManager.NO_PROJECTS, null);
 		try {
-	        int[] tests = PrintAndLog.getTestSizes();
-	        for (int testSize : tests) {
+			int[] tests = PrintAndLog.getTestSizes();
+			for (int testSize : tests) {
 				Iterable<@NonNull ? extends EObject> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9);
 				garbageCollect();
 				logger.printf("%9d, ", 10*testSize);
@@ -171,35 +170,35 @@
 				long endTime = System.nanoTime();
 				logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9);
 				assert members.size() == 9*testSize;
-	        }
+			}
 		}
 		finally {
 			environmentFactory.dispose();
 			logger.dispose();
 		}
 	}
-    
-    private Member manualCopy(@NonNull Member oldMember) {
+
+	private Member manualCopy(@NonNull Member oldMember) {
 		Member newMember = FamiliesFactory.eINSTANCE.createMember();
 		newMember.setFirstName(oldMember.getFirstName());
 		return newMember;
 	}
 
 	@Test
-    public void testQVTcCompiler_UML2RDBMS_CG() throws Exception {
-    	PrintAndLog logger = new PrintAndLog(getName());
-    	logger.printf("%s\n", getName());
+	public void testQVTcCompiler_UML2RDBMS_CG() throws Exception {
+		PrintAndLog logger = new PrintAndLog(getName());
+		logger.printf("%s\n", getName());
 		QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(ProjectManager.NO_PROJECTS, null);
 		try {
-	       	QVTcSimpleUMLGenerator generator = new QVTcSimpleUMLGenerator();
-	        int[] tests = PrintAndLog.getTestSizes();
-	        for (int testSize : tests) {
-	        	int nPackages = testSize;
-	           	int nClasses = testSize * 8;
-	           	int nTypes = 0;//testSize;
-	           	int nProperties = 0;//testSize * 45;
-	           	int nAssociations = 0;//testSize * 45;
-	        	int nElements = nPackages + nClasses + nTypes + nProperties + nAssociations;
+			QVTcSimpleUMLGenerator generator = new QVTcSimpleUMLGenerator();
+			int[] tests = PrintAndLog.getTestSizes();
+			for (int testSize : tests) {
+				int nPackages = testSize;
+				int nClasses = testSize * 8;
+				int nTypes = 0;//testSize;
+				int nProperties = 0;//testSize * 45;
+				int nAssociations = 0;//testSize * 45;
+				int nElements = nPackages + nClasses + nTypes + nProperties + nAssociations;
 				Iterable<@NonNull ? extends Object> rootObjects = generator.createSimpleUMLModel(nPackages, nClasses, nTypes, nProperties, nAssociations);
 				QVTiTransformationExecutor generatedExecutor = new QVTiTransformationExecutor(environmentFactory, umlRdbms.class);
 				Transformer transformer = generatedExecutor.getTransformer();
@@ -211,7 +210,7 @@
 				long endTime = System.nanoTime();
 				logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9);
 				Collection<@NonNull Object> rootObjects2 = transformer.getRootObjects("rdbms");
-//				assert rootObjects2.size() == 9*testSize;
+				//				assert rootObjects2.size() == 9*testSize;
 				int count = 0;
 				for (Object eObject1 : rootObjects2) {
 					for (EObject eObject2 : new TreeIterable((EObject)eObject1, true)) {
@@ -219,7 +218,7 @@
 					}
 				}
 				System.out.println(rootObjects2.size() + " => " + count);
-	        }
+			}
 		}
 		finally {
 			environmentFactory.dispose();
diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java
index 3e5c5e5..bc9438d 100644
--- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java
+++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java
@@ -31,11 +31,11 @@
 import org.eclipse.m2m.qvt.oml.TransformationExecutor;
 import org.eclipse.m2m.qvt.oml.util.StringBufferLog;
 import org.eclipse.ocl.pivot.internal.resource.ProjectMap;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.ocl.pivot.utilities.XMIUtil;
 import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator;
 import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog;
 import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.BigMDE2016CGTests;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
 import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.FamiliesPackage;
 import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Persons.PersonsPackage;
 import org.junit.Test;
diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/utilities/TestsXMLUtil.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/utilities/TestsXMLUtil.java
index 4e6e259..9852f01 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/utilities/TestsXMLUtil.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/utilities/TestsXMLUtil.java
@@ -19,7 +19,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.pivot.OCLExpression;
 import org.eclipse.ocl.pivot.VariableDeclaration;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 
 
 public class TestsXMLUtil {
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachineNormalizer.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachineNormalizer.java
index 2977f71..8d579ed 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachineNormalizer.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachineNormalizer.java
@@ -27,7 +27,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.examples.xtext.tests.XtextTestCase.Normalizer;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
-import org.eclipse.qvtd.pivot.qvtbase.utilities.TreeIterable;
+import org.eclipse.ocl.pivot.utilities.TreeIterable;
 import org.eclipse.qvtd.xtext.qvtimperative.tests.ModelNormalizer;
 
 /**