Introduced new integration test helper method for safely updating model
file contents in a synchronized manner and reworked all affected
integration tests to let them use that helper method; made sure that all
integration test-initiated model-affecting operations are invoked
asynchronously to eliminate risk of deadlocks; made sure that model
files being changed in tests don't end up being out of sync by forcing a
local refresh in newly introduced test helper method for updating model
file contents
diff --git a/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/model/ModelDescriptorTest.java b/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/model/ModelDescriptorTest.java
index b93d258..e75184f 100644
--- a/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/model/ModelDescriptorTest.java
+++ b/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/model/ModelDescriptorTest.java
@@ -1,7 +1,7 @@
 /**

  * <copyright>

  *

- * Copyright (c) 2008-2013 See4sys, itemis and others.

+ * Copyright (c) 2008-2019 See4sys, itemis 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

@@ -87,28 +87,28 @@
 	@Override

 	protected void setUp() throws Exception {

 		super.setUp();

-		hbProject10AResources10 = refWks

-				.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE);

+		hbProject10AResources10 = refWks.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A,

+				Hummingbird10MMDescriptor.INSTANCE);

 		resources10InProject10A = hbProject10AResources10.size();

 

-		hbProject10DResources10 = refWks

-				.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_D, Hummingbird10MMDescriptor.INSTANCE);

+		hbProject10DResources10 = refWks.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_D,

+				Hummingbird10MMDescriptor.INSTANCE);

 		resources10InProject10D = hbProject10DResources10.size();

 

-		hbProject10EResources10 = refWks

-				.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E, Hummingbird10MMDescriptor.INSTANCE);

+		hbProject10EResources10 = refWks.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E,

+				Hummingbird10MMDescriptor.INSTANCE);

 		resources10InProject10E = hbProject10EResources10.size();

 

-		hbProject20AResources20 = refWks

-				.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE);

+		hbProject20AResources20 = refWks.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A,

+				Hummingbird20MMDescriptor.INSTANCE);

 		resources20InProject20A = hbProject20AResources20.size();

 

-		hbProject20DResources20 = refWks

-				.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D, Hummingbird20MMDescriptor.INSTANCE);

+		hbProject20DResources20 = refWks.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D,

+				Hummingbird20MMDescriptor.INSTANCE);

 		resources20InProject20D = hbProject20DResources20.size();

 

-		hbProject20EResources20 = refWks

-				.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E, Hummingbird20MMDescriptor.INSTANCE);

+		hbProject20EResources20 = refWks.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E,

+				Hummingbird20MMDescriptor.INSTANCE);

 		resources20InProject20E = hbProject20EResources20.size();

 

 		hbProject20DResourcesUml2 = refWks.getReferenceFileNames(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D, UML2MMDescriptor.INSTANCE);

@@ -124,12 +124,12 @@
 	public void testGetLoadedResources() {

 

 		// Models of Hummingbird10Resource

-		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 		assertNotNull(hbModel10A);

 		assertNotNull(hbModel10D);

 		assertNotNull(hbModel10E);

@@ -229,12 +229,12 @@
 		assertEquals(resources10InProject10E, loadedResources.size());

 		// ================================================

 		// Models of Hummingbird20Resource

-		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 		assertNotNull(hbModel20A);

 		assertNotNull(hbModel20D);

 		assertNotNull(hbModel20E);

@@ -335,10 +335,10 @@
 		assertEquals(resources20InProject20E, loadedResources.size());

 		// ======================================================================

 		// Models of Hummingbird20Resource

-		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 		assertNotNull(uml2Model20D);

 		assertNotNull(uml2Model20E);

 

@@ -354,8 +354,8 @@
 		loadedResources = uml2Model20E.getLoadedResources(true);

 		assertEquals(resourcesUml2InProject20D + resourcesUml2InProject20E, loadedResources.size());

 		for (Resource res : loadedResources) {

-			assertTrue(hbProject20DResourcesUml2.contains(res.getURI().lastSegment())

-					|| hbProject20EResourcesUml2.contains(res.getURI().lastSegment()));

+			assertTrue(

+					hbProject20DResourcesUml2.contains(res.getURI().lastSegment()) || hbProject20EResourcesUml2.contains(res.getURI().lastSegment()));

 		}

 

 		loadedResources = uml2Model20E.getLoadedResources(false);

@@ -418,12 +418,12 @@
 		EObject modelRoot = resource.getContents().get(0);

 		assertNotNull(modelRoot);

 		// Models of Hummingbird10Resource

-		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 		assertNotNull(hbModel10A);

 		assertNotNull(hbModel10D);

 		assertNotNull(hbModel10E);

@@ -523,12 +523,12 @@
 		assertEquals(resources10InProject10E, persistedFiles.size());

 		// ================================================

 		// Models of Hummingbird20Resource

-		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 		assertNotNull(hbModel20A);

 		assertNotNull(hbModel20D);

 		assertNotNull(hbModel20E);

@@ -629,10 +629,10 @@
 		assertEquals(resources20InProject20E, persistedFiles.size());

 		// ======================================================================

 		// Models of Hummingbird20Resource

-		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 		assertNotNull(uml2Model20D);

 		assertNotNull(uml2Model20E);

 

@@ -701,12 +701,12 @@
 	 * Test method for {@link ModelDescriptor#getReferencedRoots()}

 	 */

 	public void testGetReferencedRoots() {

-		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 		assertNotNull(hbModel10A);

 		assertNotNull(hbModel10D);

 		assertNotNull(hbModel10E);

@@ -718,12 +718,12 @@
 		referencedRoots = hbModel10E.getReferencedRoots();

 		assertEquals(1, referencedRoots.size());

 

-		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 		assertNotNull(hbModel20A);

 		assertNotNull(hbModel20D);

 		assertNotNull(hbModel20E);

@@ -737,10 +737,10 @@
 		referencedRoots = hbModel20E.getReferencedRoots();

 		assertEquals(3, referencedRoots.size());

 

-		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 		assertNotNull(uml2Model20D);

 		assertNotNull(uml2Model20E);

 

@@ -755,12 +755,12 @@
 	 * Test method for {@link ModelDescriptor#getReferencingRoots()}

 	 */

 	public void testGetReferencingRoots() {

-		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+		IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+		IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+		IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 		assertNotNull(hbModel10A);

 		assertNotNull(hbModel10D);

 		assertNotNull(hbModel10E);

@@ -772,12 +772,12 @@
 		referencedRoots = hbModel10E.getReferencingRoots();

 		assertEquals(2, referencedRoots.size());

 

-		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+		IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+		IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+		IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 		assertNotNull(hbModel20A);

 		assertNotNull(hbModel20D);

 		assertNotNull(hbModel20E);

@@ -791,10 +791,10 @@
 		referencedRoots = hbModel20E.getReferencingRoots();

 		assertEquals(0, referencedRoots.size());

 

-		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+		IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+		IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 		assertNotNull(uml2Model20D);

 		assertNotNull(uml2Model20E);

 

@@ -807,7 +807,7 @@
 

 	/**

 	 * Test method for {@link ModelDescriptor#belongsTo(IFile, boolean)}

-	 * 

+	 *

 	 * @throws InterruptedException

 	 * @throws OperationCanceledException

 	 */

@@ -818,25 +818,25 @@
 		assertNotNull(refWks.editingDomainUml2);

 

 		// HBProjectModelScope

-		IModelDescriptor modelDescriptor10_A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-		IModelDescriptor modelDescriptor10_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-		IModelDescriptor modelDescriptor10_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+		IModelDescriptor modelDescriptor10_A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+		IModelDescriptor modelDescriptor10_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+		IModelDescriptor modelDescriptor10_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 

-		IModelDescriptor modelDescriptor20_A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-		IModelDescriptor modelDescriptor20_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-		IModelDescriptor modelDescriptor20_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+		IModelDescriptor modelDescriptor20_A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+		IModelDescriptor modelDescriptor20_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+		IModelDescriptor modelDescriptor20_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 

 		// UML2MMDescriptor.INSTANCE);

-		IModelDescriptor modelDescriptorUml2_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-		IModelDescriptor modelDescriptorUml2_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+		IModelDescriptor modelDescriptorUml2_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+		IModelDescriptor modelDescriptorUml2_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 

 		assertNotNull(modelDescriptor10_A);

 		assertNotNull(modelDescriptor10_D);

@@ -1250,7 +1250,7 @@
 

 	/**

 	 * Test method for {@link ModelDescriptor#belongsTo(Resource, boolean))}

-	 * 

+	 *

 	 * @throws InterruptedException

 	 * @throws OperationCanceledException

 	 */

@@ -1262,25 +1262,25 @@
 

 		// HBProjectModelScope

 		// HBProjectModelScope

-		IModelDescriptor modelDescriptor10_A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-		IModelDescriptor modelDescriptor10_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-		IModelDescriptor modelDescriptor10_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+		IModelDescriptor modelDescriptor10_A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+		IModelDescriptor modelDescriptor10_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+		IModelDescriptor modelDescriptor10_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 

-		IModelDescriptor modelDescriptor20_A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-		IModelDescriptor modelDescriptor20_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-		IModelDescriptor modelDescriptor20_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+		IModelDescriptor modelDescriptor20_A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+		IModelDescriptor modelDescriptor20_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+		IModelDescriptor modelDescriptor20_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 

 		// UML2MMDescriptor.INSTANCE);

-		IModelDescriptor modelDescriptorUml2_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-		IModelDescriptor modelDescriptorUml2_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+		IModelDescriptor modelDescriptorUml2_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+		IModelDescriptor modelDescriptorUml2_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 

 		assertNotNull(modelDescriptor10_A);

 		assertNotNull(modelDescriptor10_D);

@@ -1376,7 +1376,7 @@
 			// we add the new resource.

 			IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);

 			EcorePlatformUtil.addNewModelResource(refWks.editingDomain10, onlyInMemoryResourceIPath, Hummingbird10Package.eCONTENT_TYPE, modelRoot,

-					false, null);

+					true, null);

 			waitForModelLoading();

 

 			// We ensure that no underlying file exist on file system for our newly created resource.

@@ -1664,7 +1664,7 @@
 

 	/**

 	 * Test method for {@link ModelDescriptor#belongsTo(URI)}

-	 * 

+	 *

 	 * @throws OperationCanceledException

 	 * @throws InterruptedException

 	 */

@@ -1675,25 +1675,25 @@
 		assertNotNull(refWks.editingDomainUml2);

 

 		// HBProjectModelScope

-		IModelDescriptor modelDescriptor10_A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-		IModelDescriptor modelDescriptor10_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-		IModelDescriptor modelDescriptor10_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+		IModelDescriptor modelDescriptor10_A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+		IModelDescriptor modelDescriptor10_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+		IModelDescriptor modelDescriptor10_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 

-		IModelDescriptor modelDescriptor20_A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-		IModelDescriptor modelDescriptor20_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-		IModelDescriptor modelDescriptor20_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+		IModelDescriptor modelDescriptor20_A = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+		IModelDescriptor modelDescriptor20_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+		IModelDescriptor modelDescriptor20_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 

 		// UML2ModelScope

-		IModelDescriptor modelDescriptorUml2_D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-		IModelDescriptor modelDescriptorUml2_E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-				.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+		IModelDescriptor modelDescriptorUml2_D = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+		IModelDescriptor modelDescriptorUml2_E = ModelDescriptorRegistry.INSTANCE

+				.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 

 		assertNotNull(modelDescriptor10_A);

 		assertNotNull(modelDescriptor10_D);

@@ -1804,7 +1804,7 @@
 			// we add the new resource.

 			IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);

 			EcorePlatformUtil.addNewModelResource(refWks.editingDomain10, onlyInMemoryResourceIPath, Hummingbird10Package.eCONTENT_TYPE, modelRoot,

-					false, null);

+					true, null);

 			waitForModelLoading();

 

 			// We ensure that no underlying file exist on file system for our newly created resource.

@@ -2113,7 +2113,7 @@
 

 	/**

 	 * Test method for {@link ModelDescriptor#didBelongsTo(IFile)}

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	// TODO the behavior of didBelongto(...) will be considered and might be changed again. It will impact to tests on

@@ -2130,12 +2130,12 @@
 		IFile testFile20 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1);

 		IFile testFileUml2 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1);

 		{

-			IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-			IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-			IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+			IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+			IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+			IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 

 			assertNotNull(hbModel10A);

 			assertNotNull(hbModel10D);

@@ -2152,8 +2152,7 @@
 					assertTrue(EcorePlatformUtil.isFileLoaded(file10));

 					assertTrue(hbModel10A.belongsTo(file10, true));

 

-					file10.setContents(testFile10.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(file10, testFile10.getContents());

 					assertTrue(EcorePlatformUtil.isFileLoaded(file10));

 					assertFalse(hbModel10A.didBelongTo(file10, true));

 					assertFalse(hbModel10D.didBelongTo(file10, true));

@@ -2256,12 +2255,12 @@
 		// ----------------------------------------------------------

 		// Context object is HB 20Files

 		{

-			IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-			IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-			IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+			IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+			IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+			IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 			assertNotNull(hbModel20A);

 			assertNotNull(hbModel20D);

 			assertNotNull(hbModel20E);

@@ -2276,8 +2275,7 @@
 					assertTrue(EcorePlatformUtil.isFileLoaded(file20));

 					assertTrue(hbModel20A.belongsTo(file20, true));

 

-					file20.setContents(testFile20.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(file20, testFile20.getContents());

 

 					assertTrue(EcorePlatformUtil.isFileLoaded(file20));

 					assertFalse(hbModel20A.didBelongTo(file20, true));

@@ -2346,10 +2344,10 @@
 		// ----------------------------------------------------------

 		// Context object is Uml2 Files

 		{

-			IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-					.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-			IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-					.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+			IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+			IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 			assertNotNull(uml2Model20D);

 			assertNotNull(uml2Model20E);

 

@@ -2364,8 +2362,7 @@
 					assertTrue(uml2Model20D.belongsTo(fileUml2, true));

 					assertTrue(uml2Model20E.belongsTo(fileUml2, true));

 

-					fileUml2.setContents(testFileUml2.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(fileUml2, testFileUml2.getContents());

 					assertTrue(EcorePlatformUtil.isFileLoaded(fileUml2));

 

 					assertFalse(uml2Model20D.didBelongTo(fileUml2, true));

@@ -2432,7 +2429,7 @@
 

 	/**

 	 * Test method for {@link ModelDescriptor#didBelongTo(Resource, boolean)}

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testDidBelongsTo_IResource() throws Exception {

@@ -2447,12 +2444,12 @@
 		IFile testFile20 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1);

 		IFile testFileUml2 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1);

 		{

-			IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-			IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-			IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+			IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+			IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+			IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 			assertNotNull(hbModel10A);

 			assertNotNull(hbModel10D);

 			assertNotNull(hbModel10E);

@@ -2470,8 +2467,7 @@
 					assertNotNull(resource10);

 					assertTrue(hbModel10A.belongsTo(resource10, true));

 

-					file10.setContents(testFile10.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(file10, testFile10.getContents());

 					assertTrue(EcorePlatformUtil.isFileLoaded(file10));

 					assertNotNull(resource10);

 					assertFalse(hbModel10A.didBelongTo(resource10, true));

@@ -2583,12 +2579,12 @@
 		// ----------------------------------------------------------

 		// Context object is HB 20Files

 		{

-			IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-			IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-			IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+			IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+			IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+			IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 			assertNotNull(hbModel20A);

 			assertNotNull(hbModel20D);

 			assertNotNull(hbModel20E);

@@ -2606,8 +2602,7 @@
 					assertNotNull(resource20);

 					assertTrue(hbModel20A.belongsTo(resource20, true));

 

-					file20.setContents(testFile20.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(file20, testFile20.getContents());

 					assertTrue(EcorePlatformUtil.isFileLoaded(file20));

 

 					assertFalse(hbModel20A.didBelongTo(resource20, true));

@@ -2679,10 +2674,10 @@
 		// ----------------------------------------------------------

 		// Context object is Uml2 Files

 		{

-			IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-					.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-			IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-					.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+			IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+			IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 			assertNotNull(uml2Model20D);

 			assertNotNull(uml2Model20E);

 

@@ -2700,8 +2695,7 @@
 					assertTrue(uml2Model20D.belongsTo(resourceUml2, true));

 					assertTrue(uml2Model20E.belongsTo(resourceUml2, true));

 

-					fileUml2.setContents(testFileUml2.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(fileUml2, testFileUml2.getContents());

 					assertTrue(EcorePlatformUtil.isFileLoaded(fileUml2));

 					assertNotNull(resourceUml2);

 					assertFalse(uml2Model20D.didBelongTo(resourceUml2, true));

@@ -2743,7 +2737,7 @@
 			EObject modelRoot = createUML2ModelRoot();

 			// we add the new resource.

 			IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);

-			EcorePlatformUtil.addNewModelResource(refWks.editingDomainUml2, onlyInMemoryResourceIPath, UMLPackage.eCONTENT_TYPE, modelRoot, false,

+			EcorePlatformUtil.addNewModelResource(refWks.editingDomainUml2, onlyInMemoryResourceIPath, UMLPackage.eCONTENT_TYPE, modelRoot, true,

 					null);

 			waitForModelLoading();

 

@@ -2773,7 +2767,7 @@
 

 	/**

 	 * Test method for {@link ModelDescriptor#didBelongTo(URI, boolean)}

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testDidBelongsTo_URI() throws Exception {

@@ -2788,12 +2782,12 @@
 		IFile testFile20 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1);

 		IFile testFileUml2 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1);

 		{

-			IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_A

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

-			IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_D

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

-			IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject10_E

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

+			IModelDescriptor hbModel10A = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1));

+			IModelDescriptor hbModel10D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10D_1));

+			IModelDescriptor hbModel10E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject10_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1));

 			assertNotNull(hbModel10A);

 			assertNotNull(hbModel10D);

 			assertNotNull(hbModel10E);

@@ -2812,8 +2806,9 @@
 					URI uri10 = resource10.getURI();

 					assertTrue(hbModel10A.belongsTo(uri10, true));

 

-					file10.setContents(testFile10.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					System.out.println(">>>>>>>>>>>> Setting contents");

+					synchronizedSetFileContents(file10, testFile10.getContents());

+					System.out.println("<<<<<<<<<<<< Done.");

 					assertTrue(EcorePlatformUtil.isFileLoaded(file10));

 

 					assertFalse(hbModel10A.didBelongTo(uri10, true));

@@ -2930,12 +2925,12 @@
 		// ----------------------------------------------------------

 		// Context object is HB 20Files

 		{

-			IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_A

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

-			IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

-			IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-					.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

+			IModelDescriptor hbModel20A = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1));

+			IModelDescriptor hbModel20D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1));

+			IModelDescriptor hbModel20E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1));

 			assertNotNull(hbModel20A);

 			assertNotNull(hbModel20D);

 			assertNotNull(hbModel20E);

@@ -2954,8 +2949,7 @@
 					URI uri20 = resource20.getURI();

 					assertTrue(hbModel20A.belongsTo(uri20, true));

 

-					file20.setContents(testFile20.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(file20, testFile20.getContents());

 					assertTrue(EcorePlatformUtil.isFileLoaded(file20));

 

 					assertFalse(hbModel20A.didBelongTo(uri20, true));

@@ -3028,10 +3022,10 @@
 		// ----------------------------------------------------------

 		// Context object is Uml2 Files

 		{

-			IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_D

-					.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

-			IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE.getModel(refWks.hbProject20_E

-					.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

+			IModelDescriptor uml2Model20D = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1));

+			IModelDescriptor uml2Model20E = ModelDescriptorRegistry.INSTANCE

+					.getModel(refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1));

 			assertNotNull(uml2Model20D);

 			assertNotNull(uml2Model20E);

 

@@ -3050,8 +3044,7 @@
 					assertTrue(uml2Model20D.belongsTo(uriUml2, true));

 					assertTrue(uml2Model20E.belongsTo(uriUml2, true));

 

-					fileUml2.setContents(testFileUml2.getContents(), 0, new NullProgressMonitor());

-					waitForModelLoading();

+					synchronizedSetFileContents(fileUml2, testFileUml2.getContents());

 					assertTrue(EcorePlatformUtil.isFileLoaded(fileUml2));

 

 					assertFalse(uml2Model20D.didBelongTo(uriUml2, true));

diff --git a/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/resource/ModelConverterTest.java b/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/resource/ModelConverterTest.java
index 60ad788..8d0ac8e 100644
--- a/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/resource/ModelConverterTest.java
+++ b/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/resource/ModelConverterTest.java
@@ -1,7 +1,7 @@
 /**

  * <copyright>

  *

- * Copyright (c) 2008-2013 See4sys, itemis and others.

+ * Copyright (c) 2008-2019 See4sys, itemis 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

@@ -63,8 +63,8 @@
 				"fModelConverters");

 		for (Iterator<IModelConverter> iter = modelConverters.iterator(); iter.hasNext();) {

 			IModelConverter converter = iter.next();

-			if (!(converter instanceof MockModelConverter && Hummingbird20MMCompatibility.HUMMINGBIRD_2_0_0_RESOURCE_DESCRIPTOR.equals(converter

-					.getResourceVersionDescriptor()))) {

+			if (!(converter instanceof MockModelConverter

+					&& Hummingbird20MMCompatibility.HUMMINGBIRD_2_0_0_RESOURCE_DESCRIPTOR.equals(converter.getResourceVersionDescriptor()))) {

 				iter.remove();

 			}

 		}

@@ -74,7 +74,7 @@
 

 	/**

 	 * Test method for conversion GatewayInstance from AR204 to AR202

-	 * 

+	 *

 	 * @throws Exception

 	 */

 	public void testConverterCalledWhenSavingResource() throws Exception {

@@ -97,8 +97,9 @@
 		assertNotNull(modelConveter);

 

 		// save the project to trigger model conversion

-		ModelSaveManager.INSTANCE.saveProject(contextProject, false, new NullProgressMonitor());

-		ModelLoadManager.INSTANCE.reloadProject(contextProject, false, false, null);

+		ModelSaveManager.INSTANCE.saveProject(contextProject, true, new NullProgressMonitor());

+		waitForModelSaving();

+		ModelLoadManager.INSTANCE.reloadProject(contextProject, false, true, new NullProgressMonitor());

 		waitForModelLoading();

 

 		// Check that resource was converted

diff --git a/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/util/EcorePlatformUtilTest.java b/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/util/EcorePlatformUtilTest.java
index 1befef6..6cb1d84 100644
--- a/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/util/EcorePlatformUtilTest.java
+++ b/tests/org.eclipse.sphinx.tests.emf.integration/src/org/eclipse/sphinx/tests/emf/integration/util/EcorePlatformUtilTest.java
@@ -1,7 +1,7 @@
 /**
  * <copyright>
  *
- * Copyright (c) 2008-2014 See4sys, itemis and others.
+ * Copyright (c) 2008-2019 See4sys, itemis 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
@@ -458,8 +458,8 @@
 
 		// File URI
 		URI fileURI = URI.createFileURI(hbFile10_10A_1.getLocation().toString());
-		assertEquals(hbFile10_10A_1.getLocation().toString().replace("//", "/"), EcorePlatformUtil.createAbsoluteFileLocation(fileURI).toString()
-				.replace("//", "/"));
+		assertEquals(hbFile10_10A_1.getLocation().toString().replace("//", "/"),
+				EcorePlatformUtil.createAbsoluteFileLocation(fileURI).toString().replace("//", "/"));
 
 		// Platform URI
 		URI platformResouceURI = URI.createPlatformResourceURI(hbFile10_10A_1.getFullPath().toString(), true);
@@ -577,7 +577,7 @@
 		// we add the new resource.
 		IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);
 		EcorePlatformUtil.addNewModelResource(refWks.editingDomain20, onlyInMemoryResourceIPath,
-				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, false, null);
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, true, null);
 		waitForModelLoading();
 
 		// We ensure that no underlying file exist on file system for our newly created resource.
@@ -716,7 +716,7 @@
 		// we add the new resource.
 		IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);
 		EcorePlatformUtil.addNewModelResource(refWks.editingDomain20, onlyInMemoryResourceIPath,
-				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, false, null);
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, true, null);
 		waitForModelLoading();
 
 		// We ensure that no underlying file exist on file system for our newly created resource.
@@ -788,15 +788,12 @@
 	 */
 	public void testIsResourceLoaded() throws Exception {
 		// Hummingbird10 Resources
-		Resource loadedHBResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource loadedHBResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
-		Resource loadedHBResource10_3 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
+		Resource loadedHBResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource loadedHBResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource loadedHBResource10_3 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
 
 		assertNotNull(loadedHBResource10_1);
 		assertNotNull(loadedHBResource10_2);
@@ -811,15 +808,12 @@
 		assertFalse(EcorePlatformUtil.isResourceLoaded(refWks.editingDomain20, loadedHBResource10_3));
 		// --------------------------------------------------------------------
 		// //Hummingbird20 Resources
-		Resource loadedHBResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
-		Resource loadedHBResource20_2 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
-		Resource loadedHBResource20_3 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
+		Resource loadedHBResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource loadedHBResource20_2 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
+		Resource loadedHBResource20_3 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
 
 		assertNotNull(loadedHBResource20_1);
 		assertNotNull(loadedHBResource20_2);
@@ -835,15 +829,12 @@
 		// --------------------------------------------------------------------
 		// Files Uml2
 
-		Resource loadedResourceUml2_1 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
-		Resource loadedResourceUml2_2 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
-		Resource loadedResourceUml2_3 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
+		Resource loadedResourceUml2_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource loadedResourceUml2_2 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
+		Resource loadedResourceUml2_3 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
 
 		assertNotNull(loadedResourceUml2_1);
 		assertNotNull(loadedResourceUml2_2);
@@ -878,7 +869,7 @@
 		// we add the new resource.
 		IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);
 		EcorePlatformUtil.addNewModelResource(refWks.editingDomain20, onlyInMemoryResourceIPath,
-				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, false, null);
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, true, null);
 		waitForModelLoading();
 
 		// We ensure that no underlying file exist on file system for our newly created resource.
@@ -900,7 +891,7 @@
 		assertNotNull(hbFile10_2);
 		assertNotNull(hbFile10_3);
 
-		ModelLoadManager.INSTANCE.unloadFile(hbFile10_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(hbFile10_1, true, new NullProgressMonitor());
 		waitForModelLoading();
 		assertFalse(EcorePlatformUtil.isResourceLoaded(refWks.editingDomain10, loadedHBResource10_1));
 		assertTrue(EcorePlatformUtil.isResourceLoaded(refWks.editingDomain10, loadedHBResource10_2));
@@ -914,7 +905,7 @@
 		assertNotNull(hbFile20_2);
 		assertNotNull(hbFile20_3);
 
-		ModelLoadManager.INSTANCE.unloadFile(hbFile20_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(hbFile20_1, true, new NullProgressMonitor());
 		waitForModelLoading();
 		assertFalse(EcorePlatformUtil.isResourceLoaded(refWks.editingDomain20, loadedHBResource20_1));
 		assertTrue(EcorePlatformUtil.isResourceLoaded(refWks.editingDomain20, loadedHBResource20_2));
@@ -928,7 +919,7 @@
 		assertNotNull(Uml2File_2);
 		assertNotNull(Uml2File_3);
 
-		ModelLoadManager.INSTANCE.unloadFile(Uml2File_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(Uml2File_1, true, new NullProgressMonitor());
 		waitForModelLoading();
 		assertFalse(EcorePlatformUtil.isResourceLoaded(refWks.editingDomainUml2, loadedResourceUml2_1));
 		assertTrue(EcorePlatformUtil.isResourceLoaded(refWks.editingDomainUml2, loadedResourceUml2_2));
@@ -975,9 +966,8 @@
 		assertNotNull(hbFile20_20A_1);
 		assertTrue(hbFile20_20A_1.isAccessible());
 
-		Resource hbResource20 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
 		assertNotNull(hbResource20);
 		assertFalse(hbResource20.getContents().isEmpty());
 		EObject rootObject20 = hbResource20.getContents().get(0);
@@ -988,9 +978,8 @@
 		IFile hbFile10_10A_1 = refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1);
 		assertNotNull(hbFile10_10A_1);
 		assertTrue(hbFile10_10A_1.isAccessible());
-		Resource hbResource10 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
 
 		assertNotNull(hbResource10);
 		assertFalse(hbResource10.getContents().isEmpty());
@@ -1002,9 +991,8 @@
 		IFile shinxFile_3D_1 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1);
 		assertNotNull(shinxFile_3D_1);
 		assertTrue(shinxFile_3D_1.isAccessible());
-		Resource Uml2Resource = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource Uml2Resource = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
 
 		assertNotNull(Uml2Resource);
 		assertFalse(Uml2Resource.getContents().isEmpty());
@@ -1029,7 +1017,7 @@
 		// we add the new resource.
 		IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);
 		EcorePlatformUtil.addNewModelResource(refWks.editingDomain20, onlyInMemoryResourceIPath,
-				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, false, null);
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, true, null);
 		waitForModelLoading();
 
 		// We ensure that no underlying file exist on file system for our newly created resource.
@@ -1079,9 +1067,8 @@
 		String hbFile20_20A_1Path = "/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
 				+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1;
 
-		Resource hbResource20 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
 		assertNotNull(hbResource20);
 		assertEquals(hbFile20_20A_1, EcorePlatformUtil.getFile(hbResource20.getURI()));
 		assertEquals(hbFile20_20A_1, EcorePlatformUtil.getFile(EcorePlatformUtil.createAbsoluteFileURI(hbFile20_20A_1.getFullPath())));
@@ -1095,9 +1082,8 @@
 		String hbFile10_10A_1Path = "/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
 				+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1;
 
-		Resource hbResource10 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
 		assertNotNull(hbResource10);
 		assertEquals(hbFile10_10A_1, EcorePlatformUtil.getFile(hbResource10.getURI()));
 		assertEquals(hbFile10_10A_1, EcorePlatformUtil.getFile(EcorePlatformUtil.createAbsoluteFileURI(hbFile10_10A_1.getFullPath())));
@@ -1112,9 +1098,8 @@
 		String fileUml2_20D_1Path = "/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
 				+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1;
 
-		Resource resourceUml2 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource resourceUml2 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
 		assertNotNull(resourceUml2);
 		assertEquals(fileUml2_20D_1, EcorePlatformUtil.getFile(resourceUml2.getURI()));
 		assertEquals(fileUml2_20D_1, EcorePlatformUtil.getFile(EcorePlatformUtil.createAbsoluteFileURI(fileUml2_20D_1.getFullPath())));
@@ -1132,7 +1117,7 @@
 		// we add the new resource.
 		IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);
 		EcorePlatformUtil.addNewModelResource(refWks.editingDomain20, onlyInMemoryResourceIPath,
-				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, false, null);
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, true, null);
 		waitForModelLoading();
 
 		// We ensure that no underlying file exist on file system for our newly created resource.
@@ -1235,24 +1220,18 @@
 		assertTrue(hbFile20_5.exists());
 		assertTrue(hbFile20_6.exists());
 
-		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
-		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
-		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
-		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
-		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
-		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
+		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
+		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
+		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
+		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
+		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
 		assertNotNull(hbResource20_1);
 		assertNotNull(hbResource20_2);
 		assertNotNull(hbResource20_3);
@@ -1281,15 +1260,12 @@
 		assertTrue(uml2File_2.exists());
 		assertTrue(uml2File_3.exists());
 
-		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
-		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
-		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
+		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
+		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
 
 		assertNotNull(uml2Resource_1);
 		assertNotNull(uml2Resource_2);
@@ -1309,7 +1285,7 @@
 		// we add the new resource.
 		IPath onlyInMemoryResourceIPath = EcorePlatformUtil.createPath(onlyInMemoryResourceUri);
 		EcorePlatformUtil.addNewModelResource(refWks.editingDomain20, onlyInMemoryResourceIPath,
-				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, false, null);
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), modelRoot, true, null);
 		waitForModelLoading();
 
 		// We ensure that no underlying file exist on file system for our newly created resource.
@@ -1333,9 +1309,8 @@
 	 * Test method for {@link EcorePlatformUtil#getFile(org.eclipse.emf.ecore.util.FeatureMap.Entry)}
 	 */
 	public void testGetFileFromFeatureMapEntry() throws Exception {
-		Resource hbResource20A_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20A_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
 
 		assertNotNull(hbResource20A_1);
 		assertFalse(hbResource20A_1.getContents().isEmpty());
@@ -1366,7 +1341,8 @@
 		// --------------------------------------------------------------------
 		// Given Entry belong to unloaded resource
 		IFile hbFile20_20A_1 = refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1);
-		ModelLoadManager.INSTANCE.unloadFile(hbFile20_20A_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(hbFile20_20A_1, true, new NullProgressMonitor());
+		waitForModelLoading();
 		assertNull(EcorePlatformUtil.getFile(testEntry));
 	}
 
@@ -1399,9 +1375,9 @@
 		assertNull(EcorePlatformUtil.getFile(nullItemProvider));
 		// --------------------------------------------------------------------
 		// WrapperItemProvider of object in unloaded resource
-		ModelLoadManager.INSTANCE.unloadFile(hbFile20_20A_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(hbFile20_20A_1, true, new NullProgressMonitor());
+		waitForModelLoading();
 		assertNull(EcorePlatformUtil.getFile(wrapperItemProvider));
-
 	}
 
 	/**
@@ -1409,9 +1385,8 @@
 	 */
 	public void testGetResourceFromEObject() throws Exception {
 		// Hummingbird20 EObject
-		Resource hbResource20 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
 
 		assertNotNull(hbResource20);
 		assertFalse(hbResource20.getContents().isEmpty());
@@ -1440,9 +1415,8 @@
 		IFile uml2File_20D_1 = refWks.hbProject20_D.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1);
 		assertNotNull(uml2File_20D_1);
 		assertTrue(uml2File_20D_1.isAccessible());
-		Resource uml2Resource = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource uml2Resource = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
 		assertNotNull(uml2Resource);
 		assertFalse(uml2Resource.getContents().isEmpty());
 		EObject uml2Object = uml2Resource.getContents().get(0);
@@ -1454,7 +1428,8 @@
 		assertNull(EcorePlatformUtil.getResource(nullEObject));
 		// --------------------------------------------------------------------
 		// Given object belong to unloaded resource
-		ModelLoadManager.INSTANCE.unloadFile(hbFile10_10A_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(hbFile10_10A_1, true, new NullProgressMonitor());
+		waitForModelLoading();
 		assertNotNull(object21);
 		assertNull(EcorePlatformUtil.getResource(object21));
 	}
@@ -1582,7 +1557,8 @@
 		// Given URI is unloaded resource's uri
 		IFile fileToUnload = refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1);
 		assertNotNull(fileToUnload);
-		ModelLoadManager.INSTANCE.unloadFile(fileToUnload, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(fileToUnload, true, new NullProgressMonitor());
+		waitForModelLoading();
 		assertNotNull(hbResource20_1);
 		assertNull(EcorePlatformUtil.getResource(hbResource20_1.getURI()));
 		assertNull(EcorePlatformUtil.getResource(hbFile20_20A_1FileUri));
@@ -1734,11 +1710,14 @@
 		assertEquals(uml2Resource_3, EcorePlatformUtil.getResource(uml2File_3));
 		// --------------------------------------------------------------------
 		// Given File is unloaded
-		ModelLoadManager.INSTANCE.unloadFile(hbFile10_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(hbFile10_1, true, new NullProgressMonitor());
+		waitForModelLoading();
 		assertNull(EcorePlatformUtil.getResource(hbFile10_1));
-		ModelLoadManager.INSTANCE.unloadFile(hbFile20_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(hbFile20_1, true, new NullProgressMonitor());
+		waitForModelLoading();
 		assertNull(EcorePlatformUtil.getResource(hbFile20_1));
-		ModelLoadManager.INSTANCE.unloadFile(uml2File_1, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadFile(uml2File_1, true, new NullProgressMonitor());
+		waitForModelLoading();
 		assertNull(EcorePlatformUtil.getResource(uml2File_1));
 		// --------------------------------------------------------------------
 		// Given File is NULL
@@ -1750,9 +1729,8 @@
 	 * Test method for {@link EcorePlatformUtil#getResource(org.eclipse.emf.ecore.util.FeatureMap.Entry)}
 	 */
 	public void testGetResourceFromFeatureMapEntry() throws Exception {
-		Resource hbResource20A_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20A_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
 
 		assertNotNull(hbResource20A_1);
 		assertFalse(hbResource20A_1.getContents().isEmpty());
@@ -1811,7 +1789,8 @@
 		// assertNull(EcorePlatformUtil.getResource(nullWrapperItemProvider));
 		// // --------------------------------------------------------------------
 		// // WrapperItemProvider of object in unloaded resource
-		// ModelLoadManager.INSTANCE.unloadFile(hbFile20_20A_1, false, new NullProgressMonitor());
+		// ModelLoadManager.INSTANCE.unloadFile(hbFile20_20A_1, true, new NullProgressMonitor());
+		// waitForModelLoading();
 		// assertNull(EcorePlatformUtil.getResource(wrapperItemProvider));
 
 	}
@@ -1847,12 +1826,13 @@
 		// Save resource
 		{
 			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath10_1, Hummingbird10Package.eCONTENT_TYPE,
-					createApplicationHB10(), false, new NullProgressMonitor());
+					createApplicationHB10(), true, new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10++;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -1871,12 +1851,13 @@
 		// Context: use ContentTypeId of Hummingbird20 to save hbResource10 to EditingDomain10
 		{
 			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath10_2,
-					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createApplicationHB10(), false, new NullProgressMonitor());
+					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createApplicationHB10(), true, new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10++;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -1897,10 +1878,11 @@
 		// EditingDomain10
 		{
 			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath10_1,
-					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createApplicationHB10(), false, new NullProgressMonitor());
+					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createApplicationHB10(), true, new NullProgressMonitor());
+			waitForModelSaving();
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 			// Verify the saved resource
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
@@ -1920,14 +1902,14 @@
 		{
 			// Save resource
 			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath20_1,
-					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform(), false, new NullProgressMonitor());
-
+					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform(), true, new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10++;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -1955,13 +1937,14 @@
 		// Context: save HB20 Resource to EditingDomain10 and in hbProject20
 		{
 			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath20_2,
-					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform(), false, new NullProgressMonitor());
+					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform(), true, new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10++;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -1997,15 +1980,16 @@
 
 		{
 			// Save uml2Resource in EditingDomain21
-			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newUml2ResourcePath_1, UMLPackage.eCONTENT_TYPE, newModel, false,
+			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newUml2ResourcePath_1, UMLPackage.eCONTENT_TYPE, newModel, true,
 					new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10++;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesIneditingDomainUml2);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -2018,8 +2002,8 @@
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
 			// Verified saved resource
-			Resource uml2Resource = refWks.editingDomainUml2.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newUml2ResourcePath_1.toString(), true), true);
+			Resource uml2Resource = refWks.editingDomainUml2.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newUml2ResourcePath_1.toString(), true), true);
 			assertNotNull(uml2Resource);
 			assertNotNull(uml2Resource.getContents());
 			assertEquals(1, uml2Resource.getContents().size());
@@ -2045,13 +2029,14 @@
 			newPack2_2.setName("Package2");
 			newModel_2.getPackagedElements().add(newPack2_2);
 
-			EcorePlatformUtil.saveNewModelResource(refWks.editingDomainUml2, newUml2ResourcePath_2, UMLPackage.eCONTENT_TYPE, newModel_2, false,
+			EcorePlatformUtil.saveNewModelResource(refWks.editingDomainUml2, newUml2ResourcePath_2, UMLPackage.eCONTENT_TYPE, newModel_2, true,
 					new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesIneditingDomainUml2++;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesIneditingDomainUml2);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -2060,8 +2045,8 @@
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
 			// Verify saved resources
-			Resource uml2Resource = refWks.editingDomainUml2.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newUml2ResourcePath_2.toString(), true), false);
+			Resource uml2Resource = refWks.editingDomainUml2.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newUml2ResourcePath_2.toString(), true), false);
 			assertNotNull(uml2Resource);
 
 			// Verify second resource
@@ -2079,11 +2064,14 @@
 			// Given EditingDomain is NULL
 			TransactionalEditingDomain nullEditingDomain = null;
 			EcorePlatformUtil.saveNewModelResource(nullEditingDomain, newResourcePath10_3, Hummingbird10Package.eCONTENT_TYPE,
-					createApplicationHB10(), false, new NullProgressMonitor());
+					createApplicationHB10(), true, new NullProgressMonitor());
+			waitForModelSaving();
 			EcorePlatformUtil.saveNewModelResource(nullEditingDomain, newResourcePath20_3,
-					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform(), false, new NullProgressMonitor());
-			EcorePlatformUtil.saveNewModelResource(nullEditingDomain, newUml2ResourcePath_3, UMLPackage.eCONTENT_TYPE, newModel, false,
+					Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform(), true, new NullProgressMonitor());
+			waitForModelSaving();
+			EcorePlatformUtil.saveNewModelResource(nullEditingDomain, newUml2ResourcePath_3, UMLPackage.eCONTENT_TYPE, newModel, true,
 					new NullProgressMonitor());
+			waitForModelSaving();
 
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
@@ -2094,8 +2082,8 @@
 			IPath nullPath = null;
 			try {
 				EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, nullPath, Hummingbird10Package.eCONTENT_TYPE, createApplicationHB10(),
-						false, new NullProgressMonitor());
-
+						true, new NullProgressMonitor());
+				waitForModelSaving();
 			} catch (Exception ex) {
 				if (!(ex instanceof AssertionFailedException)) {
 					fail("Exception when the given Path is Null: " + ex.getMessage());
@@ -2104,11 +2092,12 @@
 		}
 		{
 			// Given contentTypeID is NULL or incorrect
-			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath10_3, null, createApplicationHB10(), false,
+			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath10_3, null, createApplicationHB10(), true,
 					new NullProgressMonitor());
-			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain20, newResourcePath20_3, null, createPlatform(), false,
+			EcorePlatformUtil.saveNewModelResource(refWks.editingDomain20, newResourcePath20_3, null, createPlatform(), true,
 					new NullProgressMonitor());
-			EcorePlatformUtil.saveNewModelResource(refWks.editingDomainUml2, newUml2ResourcePath_3, null, newModel, false, new NullProgressMonitor());
+			EcorePlatformUtil.saveNewModelResource(refWks.editingDomainUml2, newUml2ResourcePath_3, null, newModel, true, new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10++;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			resourcesInEditingDomain20++;
@@ -2121,8 +2110,8 @@
 			EObject rootObject = null;
 			try {
 				EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath10_3, Hummingbird10Package.eCONTENT_TYPE, rootObject,
-						false, new NullProgressMonitor());
-
+						true, new NullProgressMonitor());
+				waitForModelSaving();
 			} catch (Exception ex) {
 				if (!(ex instanceof AssertionFailedException)) {
 					fail("Exception when the given Path is Null: " + ex.getMessage());
@@ -2150,10 +2139,11 @@
 
 		// Save new model resource
 		EcorePlatformUtil.saveNewModelResource(refWks.editingDomain10, newResourcePath, Hummingbird10Package.eCONTENT_TYPE, createApplicationHB10(),
-				options, false, new NullProgressMonitor());
+				options, true, new NullProgressMonitor());
+		waitForModelSaving();
 
 		// Reload project
-		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		// Verify the saved resource
@@ -2172,8 +2162,8 @@
 	 * Test method for
 	 * {@link EcorePlatformUtil#saveNewModelResources(org.eclipse.emf.transaction.TransactionalEditingDomain, java.util.Collection, java.util.Map, boolean, org.eclipse.core.runtime.IProgressMonitor)}
 	 *
-	 * @see {@link this#testSaveNewModelResource_WithoutSaveOptions()} {@link
-	 *      this#testSaveNewModelResource_WithoutSaveOptions()}
+	 * @see {@link this#testSaveNewModelResource_WithoutSaveOptions()}
+	 *      {@link this#testSaveNewModelResource_WithoutSaveOptions()}
 	 * @throws InterruptedException
 	 */
 
@@ -2211,29 +2201,30 @@
 				createApplicationHB10());
 		ModelResourceDescriptor modelDesc5 = new ModelResourceDescriptor(newResourcePath10_5, Hummingbird10Package.eCONTENT_TYPE,
 				createApplicationHB10());
-		ModelResourceDescriptor modelDesc6 = new ModelResourceDescriptor(newResourcePath20_1, Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(),
-				createPlatform());
+		ModelResourceDescriptor modelDesc6 = new ModelResourceDescriptor(newResourcePath20_1,
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform());
 
 		{
 			// Save resources with its corresponding editingDomain
 			modelResourceDescriptors10.add(modelDesc1);
 			modelResourceDescriptors10.add(modelDesc2);
 
-			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors10, options, false, new NullProgressMonitor());
+			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors10, options, true, new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10 += 2;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
-			Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_1.toString(), true), false);
-			Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_2.toString(), true), false);
+			Resource savedResource1 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_1.toString(), true), false);
+			Resource savedResource2 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_2.toString(), true), false);
 			assertNotNull(savedResource1);
 			assertNotNull(savedResource2);
 
@@ -2257,12 +2248,13 @@
 			modelResourceDescriptors10.add(modelDesc3);
 			modelResourceDescriptors10.add(modelDesc4);
 
-			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain20, modelResourceDescriptors10, options, false, new NullProgressMonitor());
+			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain20, modelResourceDescriptors10, options, true, new NullProgressMonitor());
+			waitForModelSaving();
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20 + 2);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -2270,10 +2262,10 @@
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
-			Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_3.toString(), true), false);
-			Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_4.toString(), true), false);
+			Resource savedResource1 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_3.toString(), true), false);
+			Resource savedResource2 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_4.toString(), true), false);
 			assertNotNull(savedResource1);
 			assertNotNull(savedResource2);
 
@@ -2297,13 +2289,14 @@
 			modelResourceDescriptors_mix.add(modelDesc5);
 			modelResourceDescriptors_mix.add(modelDesc6);
 
-			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors_mix, options, false, new NullProgressMonitor());
+			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors_mix, options, true, new NullProgressMonitor());
+			waitForModelSaving();
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10 + 2);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, true, new NullProgressMonitor());
 
 			waitForModelLoading();
 
@@ -2311,10 +2304,10 @@
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10 + 1);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20 + 1);
 
-			Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_5.toString(), true), false);
-			Resource savedResource2 = refWks.editingDomain20.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath20_1.toString(), true), false);
+			Resource savedResource1 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_5.toString(), true), false);
+			Resource savedResource2 = refWks.editingDomain20.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath20_1.toString(), true), false);
 			assertNotNull(savedResource1);
 			assertNotNull(savedResource2);
 
@@ -2372,29 +2365,30 @@
 				createApplicationHB10());
 		ModelResourceDescriptor modelDesc5 = new ModelResourceDescriptor(newResourcePath10_5, Hummingbird10Package.eCONTENT_TYPE,
 				createApplicationHB10());
-		ModelResourceDescriptor modelDesc6 = new ModelResourceDescriptor(newResourcePath20_1, Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(),
-				createPlatform());
+		ModelResourceDescriptor modelDesc6 = new ModelResourceDescriptor(newResourcePath20_1,
+				Hummingbird20MMDescriptor.INSTANCE.getDefaultContentTypeId(), createPlatform());
 
 		{
 			// Save resources with its corresponding editingDomain
 			modelResourceDescriptors10.add(modelDesc1);
 			modelResourceDescriptors10.add(modelDesc2);
 
-			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors10, false, new NullProgressMonitor());
+			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors10, true, new NullProgressMonitor());
+			waitForModelSaving();
 			resourcesInEditingDomain10 += 2;
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
-			Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_1.toString(), true), false);
-			Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_2.toString(), true), false);
+			Resource savedResource1 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_1.toString(), true), false);
+			Resource savedResource2 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_2.toString(), true), false);
 			assertNotNull(savedResource1);
 			assertNotNull(savedResource2);
 
@@ -2418,12 +2412,13 @@
 			modelResourceDescriptors10.add(modelDesc3);
 			modelResourceDescriptors10.add(modelDesc4);
 
-			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain20, modelResourceDescriptors10, false, new NullProgressMonitor());
+			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain20, modelResourceDescriptors10, true, new NullProgressMonitor());
+			waitForModelSaving();
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20 + 2);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 			waitForModelLoading();
 
 			// Verify the saved resource
@@ -2431,10 +2426,10 @@
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
-			Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_3.toString(), true), false);
-			Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_4.toString(), true), false);
+			Resource savedResource1 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_3.toString(), true), false);
+			Resource savedResource2 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_4.toString(), true), false);
 			assertNotNull(savedResource1);
 			assertNotNull(savedResource2);
 
@@ -2456,13 +2451,14 @@
 			modelResourceDescriptors_mix.add(modelDesc5);
 			modelResourceDescriptors_mix.add(modelDesc6);
 
-			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors_mix, false, new NullProgressMonitor());
+			EcorePlatformUtil.saveNewModelResources(refWks.editingDomain10, modelResourceDescriptors_mix, true, new NullProgressMonitor());
+			waitForModelSaving();
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10 + 2);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
 
 			// Reload project
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
-			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, false, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
+			ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject20_A, false, true, new NullProgressMonitor());
 
 			waitForModelLoading();
 
@@ -2470,10 +2466,10 @@
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10 + 1);
 			assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20 + 1);
 
-			Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath10_5.toString(), true), false);
-			Resource savedResource2 = refWks.editingDomain20.getResourceSet().getResource(
-					URI.createPlatformResourceURI(newResourcePath20_1.toString(), true), false);
+			Resource savedResource1 = refWks.editingDomain10.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath10_5.toString(), true), false);
+			Resource savedResource2 = refWks.editingDomain20.getResourceSet()
+					.getResource(URI.createPlatformResourceURI(newResourcePath20_1.toString(), true), false);
 			assertNotNull(savedResource1);
 			assertNotNull(savedResource2);
 
@@ -2501,12 +2497,10 @@
 	public void testSaveModel_Object_EObject_WithSaveOptions() throws Exception {
 		int resourcesInEditingDomain10 = refWks.getInitialResourcesInReferenceEditingDomainCount(Hummingbird10MMDescriptor.INSTANCE);
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 
@@ -2569,20 +2563,19 @@
 		options.put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
 		options.put(XMLResource.OPTION_SAVE_DOCTYPE, Boolean.TRUE);
 
-		EcorePlatformUtil.saveModel(testApplicationHB10_1, options, false, new NullProgressMonitor());
+		EcorePlatformUtil.saveModel(testApplicationHB10_1, options, true, new NullProgressMonitor());
+		waitForModelSaving();
 
 		// Reload project
-		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		// Verify the saved resource
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
-		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(savedResource1);
 		assertNotNull(savedResource2);
 
@@ -2610,12 +2603,10 @@
 
 		int resourcesInEditingDomain10 = refWks.getInitialResourcesInReferenceEditingDomainCount(Hummingbird10MMDescriptor.INSTANCE);
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 
@@ -2673,16 +2664,15 @@
 		assertEquals(newInterfaceName2, testInterface2.getName());
 		assertEquals(numberOfComponentInFirstResource + 1, testApplicationHB10_1.getComponents().size());
 
-		EcorePlatformUtil.saveModel(testApplicationHB10_1, false, new NullProgressMonitor());
+		EcorePlatformUtil.saveModel(testApplicationHB10_1, true, new NullProgressMonitor());
+		waitForModelSaving();
 
 		// Verify the saved resource
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
-		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(savedResource1);
 		assertNotNull(savedResource2);
 
@@ -2717,12 +2707,10 @@
 	public void testSaveModel_Object_IProject_WithSaveOptions() throws Exception {
 		int resourcesInEditingDomain10 = refWks.getInitialResourcesInReferenceEditingDomainCount(Hummingbird10MMDescriptor.INSTANCE);
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 
@@ -2779,20 +2767,19 @@
 
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
-		EcorePlatformUtil.saveModel(refWks.hbProject10_A, options, false, new NullProgressMonitor());
+		EcorePlatformUtil.saveModel(refWks.hbProject10_A, options, true, new NullProgressMonitor());
+		waitForModelSaving();
 
 		// Reload project
-		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		// Verify the saved resource
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
-		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(savedResource1);
 		assertNotNull(savedResource2);
 
@@ -2823,15 +2810,12 @@
 	public void testSaveModel_Object_IProject_WithoutSaveOptions() throws Exception {
 		int resourcesInEditingDomain10 = refWks.getInitialResourcesInReferenceEditingDomainCount(Hummingbird10MMDescriptor.INSTANCE);
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
-		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 		assertNotNull(hbResource10_3);
@@ -2882,20 +2866,19 @@
 		assertEquals(newInterfaceName1, testInterface1.getName());
 		assertEquals(newInterfaceName2, testInterface2.getName());
 
-		EcorePlatformUtil.saveModel(refWks.hbProject10_A, false, new NullProgressMonitor());
+		EcorePlatformUtil.saveModel(refWks.hbProject10_A, true, new NullProgressMonitor());
+		waitForModelSaving();
 
 		// Reload project
-		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		// Verify the saved resource
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
-		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(savedResource1);
 		assertNotNull(savedResource2);
 
@@ -2927,12 +2910,10 @@
 	public void testSaveProject_WithoutSaveOptions() throws Exception {
 		int resourcesInEditingDomain10 = refWks.getInitialResourcesInReferenceEditingDomainCount(Hummingbird10MMDescriptor.INSTANCE);
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 
@@ -2982,21 +2963,20 @@
 		assertEquals(newInterfaceName1, testInterface1.getName());
 		assertEquals(newInterfaceName2, testInterface2.getName());
 
-		EcorePlatformUtil.saveProject(refWks.hbProject10_A, false, new NullProgressMonitor());
+		EcorePlatformUtil.saveProject(refWks.hbProject10_A, true, new NullProgressMonitor());
+		waitForModelSaving();
 
 		// Reload project
-		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		// Verify the saved resource
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
-		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(savedResource1);
 		assertNotNull(savedResource2);
 
@@ -3026,12 +3006,10 @@
 	public void testSaveProject_WithSaveOptions() throws Exception {
 		int resourcesInEditingDomain10 = refWks.getInitialResourcesInReferenceEditingDomainCount(Hummingbird10MMDescriptor.INSTANCE);
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 		// First resource
@@ -3090,21 +3068,20 @@
 		// ((XMLResource) hbResource10_2).setDoctypeInfo("SPHINX GROUP", "SPHINX");
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
-		EcorePlatformUtil.saveProject(refWks.hbProject10_A, options, false, new NullProgressMonitor());
+		EcorePlatformUtil.saveProject(refWks.hbProject10_A, options, true, new NullProgressMonitor());
+		waitForModelSaving();
 
 		// Reload project
-		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.reloadProject(refWks.hbProject10_A, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		// Verify the saved resource
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);
 
-		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource savedResource1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource savedResource2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
 		assertNotNull(savedResource1);
 		assertNotNull(savedResource2);
 
@@ -3515,15 +3492,12 @@
 		assertTrue(hbFile10_2.exists());
 		assertTrue(hbFile10_3.exists());
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
-		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 		assertNotNull(hbResource10_3);
@@ -3588,24 +3562,18 @@
 		assertTrue(hbFile20_5.exists());
 		assertTrue(hbFile20_6.exists());
 
-		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
-		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
-		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
-		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
-		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
-		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
+		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
+		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
+		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
+		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
+		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
 		assertNotNull(hbResource20_1);
 		assertNotNull(hbResource20_2);
 		assertNotNull(hbResource20_3);
@@ -3709,15 +3677,12 @@
 		assertTrue(uml2File_2.exists());
 		assertTrue(uml2File_3.exists());
 
-		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
-		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
-		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
+		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
+		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
 		assertNotNull(uml2Resource_1);
 		assertNotNull(uml2Resource_2);
 		assertNotNull(uml2Resource_3);
@@ -3788,15 +3753,12 @@
 		assertTrue(hbFile10_2.exists());
 		assertTrue(hbFile10_3.exists());
 
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
-		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 		assertNotNull(hbResource10_3);
@@ -3823,7 +3785,7 @@
 		assertTrue(modelRoot10_2.eContents().size() > 0);
 
 		// Unload Files HB10
-		EcorePlatformUtil.unloadFiles(refWks.editingDomain10, unloadedResources10, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadFiles(refWks.editingDomain10, unloadedResources10, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		resourcesInEditingDomain10 = resourcesInEditingDomain10 - unloadedResources10.size();
@@ -3865,24 +3827,18 @@
 		assertTrue(hbFile20_5.exists());
 		assertTrue(hbFile20_6.exists());
 
-		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
-		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
-		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
-		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
-		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
-		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
+		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
+		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
+		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
+		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
+		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
 		assertNotNull(hbResource20_1);
 		assertNotNull(hbResource20_2);
 		assertNotNull(hbResource20_3);
@@ -3930,7 +3886,7 @@
 		assertTrue(modelRoot20_5.eContents().size() > 0);
 
 		// Unload Resource20 with EditingDomain10
-		EcorePlatformUtil.unloadFiles(refWks.editingDomain10, unloadedResources20, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadFiles(refWks.editingDomain10, unloadedResources20, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
@@ -3938,7 +3894,7 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesInEditingDomainUml2);
 
 		// Unload Resource20 with EditingDomain20
-		EcorePlatformUtil.unloadFiles(refWks.editingDomain20, unloadedResources20, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadFiles(refWks.editingDomain20, unloadedResources20, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		resourcesInEditingDomain20 = resourcesInEditingDomain20 - unloadedResources20.size();
@@ -3983,15 +3939,12 @@
 		assertTrue(uml2File_2.exists());
 		assertTrue(uml2File_3.exists());
 
-		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
-		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
-		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
+		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
+		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
 		assertNotNull(uml2Resource_1);
 		assertNotNull(uml2Resource_2);
 		assertNotNull(uml2Resource_3);
@@ -4004,7 +3957,7 @@
 
 		Collection<IFile> unloadedUml2Resources = new ArrayList<IFile>();
 		// Unload empty resource
-		EcorePlatformUtil.unloadFiles(refWks.editingDomain20, unloadedUml2Resources, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadFiles(refWks.editingDomain20, unloadedUml2Resources, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
@@ -4021,7 +3974,7 @@
 		assertFalse(modelRootUml2_1.eIsProxy());
 		assertTrue(modelRootUml2_1.eContents().size() > 0);
 		// Unload uml2Resource with EditingDomain20
-		EcorePlatformUtil.unloadFiles(refWks.editingDomain20, unloadedUml2Resources, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadFiles(refWks.editingDomain20, unloadedUml2Resources, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
@@ -4029,7 +3982,7 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesInEditingDomainUml2);
 
 		// Unload ResourceUml2 with EditingDomainUml2
-		EcorePlatformUtil.unloadFiles(refWks.editingDomainUml2, unloadedUml2Resources, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadFiles(refWks.editingDomainUml2, unloadedUml2Resources, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		resourcesInEditingDomainUml2 = resourcesInEditingDomainUml2 - unloadedUml2Resources.size();
@@ -4059,24 +4012,18 @@
 
 		// Unload AllResource of EditingDomain20
 		Collection<Resource> unloadedResources20 = new ArrayList<Resource>();
-		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
-		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
-		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
-		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
-		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
-		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
+		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
+		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
+		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
+		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
+		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
 		assertNotNull(hbResource20_1);
 		assertNotNull(hbResource20_2);
 		assertNotNull(hbResource20_3);
@@ -4107,7 +4054,7 @@
 		assertNotNull(modelRoot20_5);
 		assertFalse(modelRoot20_5.eIsProxy());
 
-		EcorePlatformUtil.unloadResources(refWks.editingDomain20, unloadedResources20, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadResources(refWks.editingDomain20, unloadedResources20, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		resourcesInEditingDomain20 = resourcesInEditingDomain20 - unloadedResources20.size();
@@ -4137,15 +4084,12 @@
 
 		// Unload AllResource of EditingDomain10
 		Collection<Resource> unloadedResources10 = new ArrayList<Resource>();
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
-		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 		assertNotNull(hbResource10_3);
@@ -4166,7 +4110,7 @@
 		assertFalse(modelRoot10_2.eIsProxy());
 
 		// UnloadResources10 with EditingDomain20
-		EcorePlatformUtil.unloadResources(refWks.editingDomain20, unloadedResources10, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadResources(refWks.editingDomain20, unloadedResources10, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
@@ -4174,7 +4118,7 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesInEditingDomainUml2);
 
 		// UnloadResourc10 with EditingDomain10
-		EcorePlatformUtil.unloadResources(refWks.editingDomain10, unloadedResources10, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadResources(refWks.editingDomain10, unloadedResources10, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		resourcesInEditingDomain10 = resourcesInEditingDomain10 - unloadedResources10.size();
@@ -4196,15 +4140,12 @@
 
 		// Unload AllResource of uml2EditingDomain
 		Collection<Resource> unloadedUml2Resources = new ArrayList<Resource>();
-		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
-		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
-		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
+		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
+		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
 		assertNotNull(uml2Resource_1);
 		assertNotNull(uml2Resource_2);
 		assertNotNull(uml2Resource_3);
@@ -4232,7 +4173,7 @@
 		assertFalse(modelRootUml2_2.eIsProxy());
 
 		// Unload uml2Resource with EditingDomain20
-		EcorePlatformUtil.unloadResources(refWks.editingDomain20, unloadedUml2Resources, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadResources(refWks.editingDomain20, unloadedUml2Resources, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);
@@ -4240,7 +4181,7 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesInEditingDomainUml2);
 
 		// Unload uml2Resource with uml2EditingDomain
-		EcorePlatformUtil.unloadResources(refWks.editingDomainUml2, unloadedUml2Resources, false, new NullProgressMonitor());
+		EcorePlatformUtil.unloadResources(refWks.editingDomainUml2, unloadedUml2Resources, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		resourcesInEditingDomainUml2 = resourcesInEditingDomainUml2 - unloadedUml2Resources.size();
@@ -4269,24 +4210,18 @@
 
 		// Unload AllResource of EditingDomain20
 		Collection<Resource> unloadedResources20 = new ArrayList<Resource>();
-		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
-		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
-		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
-		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
-		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
-		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
+		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
+		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
+		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
+		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
+		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
 		assertNotNull(hbResource20_1);
 		assertNotNull(hbResource20_2);
 		assertNotNull(hbResource20_3);
@@ -4354,15 +4289,12 @@
 
 		// Unload AllResource of EditingDomain21
 		Collection<Resource> unloadedResources10 = new ArrayList<Resource>();
-		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
-		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
-		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
+		Resource hbResource10_1 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1, true), false);
+		Resource hbResource10_2 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2, true), false);
+		Resource hbResource10_3 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);
 		assertNotNull(hbResource10_1);
 		assertNotNull(hbResource10_2);
 		assertNotNull(hbResource10_3);
@@ -4416,15 +4348,12 @@
 
 		// Unload AllResource of uml2EditingDomain
 		Collection<Resource> unloadedUml2Resources = new ArrayList<Resource>();
-		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
-		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
-		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
+		Resource uml2Resource_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_1, true), false);
+		Resource uml2Resource_2 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_2, true), false);
+		Resource uml2Resource_3 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20D_3, true), false);
 		assertNotNull(uml2Resource_1);
 		assertNotNull(uml2Resource_2);
 		assertNotNull(uml2Resource_3);
@@ -4527,13 +4456,13 @@
 	 */
 	public void testCreateSaveNewSchedulingRule_Collection_ModelResourceDescriptors() throws Exception {
 		// Since Project is automatically loaded during import we need first to unload it.
-		ModelLoadManager.INSTANCE.unloadProject(refWks.hbProject20_A, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadProject(refWks.hbProject20_A, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
-		ModelLoadManager.INSTANCE.unloadProject(refWks.hbProject20_D, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadProject(refWks.hbProject20_D, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
-		ModelLoadManager.INSTANCE.unloadProject(refWks.hbProject20_E, false, false, new NullProgressMonitor());
+		ModelLoadManager.INSTANCE.unloadProject(refWks.hbProject20_E, false, true, new NullProgressMonitor());
 		waitForModelLoading();
 
 		assertTrue(refWks.editingDomain20.getResourceSet().getResources().isEmpty());
@@ -4571,24 +4500,18 @@
 	 * Test method for {@link EcorePlatformUtil#createSaveSchedulingRule(Collection)}
 	 */
 	public void testCreateSaveSchedulingRule_CollectionOfResource() throws Exception {
-		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
-		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
-		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
-		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
-		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
-		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
+		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20_2 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_2, true), false);
+		Resource hbResource20_3 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_3, true), false);
+		Resource hbResource20_4 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1, true), false);
+		Resource hbResource20_5 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_2, true), false);
+		Resource hbResource20_6 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_3, true), false);
 		assertNotNull(hbResource20_1);
 		assertNotNull(hbResource20_2);
 		assertNotNull(hbResource20_3);
@@ -4645,9 +4568,8 @@
 	 * Test method for {@link EcorePlatformUtil#createSaveSchedulingRule(Resource))}
 	 */
 	public void testCreateSaveSchedulingRule_Resource() throws Exception {
-		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(
-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/"
-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
+		Resource hbResource20_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(
+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1, true), false);
 		assertNotNull(hbResource20_1);
 
 		IFile file1 = refWks.hbProject20_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20A_1);
diff --git a/tests/org.eclipse.sphinx.tests.emf.workspace.integration/src/org/eclipse/sphinx/tests/emf/workspace/integration/syncing/ModelSyncingTest.java b/tests/org.eclipse.sphinx.tests.emf.workspace.integration/src/org/eclipse/sphinx/tests/emf/workspace/integration/syncing/ModelSyncingTest.java
index 5809bc0..15d3885 100644
--- a/tests/org.eclipse.sphinx.tests.emf.workspace.integration/src/org/eclipse/sphinx/tests/emf/workspace/integration/syncing/ModelSyncingTest.java
+++ b/tests/org.eclipse.sphinx.tests.emf.workspace.integration/src/org/eclipse/sphinx/tests/emf/workspace/integration/syncing/ModelSyncingTest.java
@@ -1,7 +1,7 @@
 /**

  * <copyright>

  *

- * Copyright (c) 2008-2014 See4sys, itemis and others.

+ * Copyright (c) 2008-2019 See4sys, itemis 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

@@ -150,8 +150,8 @@
 		synchronizedOpenProject(refWks.hbProject20_A);

 

 		assertTrue(refWks.hbProject20_A.isOpen());

-		resourcesInEditingDomain20 += refWks

-				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE).size();

+		resourcesInEditingDomain20 += refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE)

+				.size();

 		resourcesInEditingDomainUml2 = resourcesInEditingDomainUml2

 				+ refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, UML2MMDescriptor.INSTANCE).size();

 

@@ -317,8 +317,8 @@
 

 		assertTrue(refWks.hbProject20_A.hasNature(HummingbirdNature.ID));

 

-		int hbProject20_A_Files20Count = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A,

-				Hummingbird20MMDescriptor.INSTANCE).size();

+		int hbProject20_A_Files20Count = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE).size();

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, 0);

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, hbProject20_A_Files20Count);

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, 0);

@@ -373,8 +373,8 @@
 

 		assertTrue(refWks.hbProject10_A.hasNature(HummingbirdNature.ID));

 

-		int hbProject10_A_Files10Count = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A,

-				Hummingbird10MMDescriptor.INSTANCE).size();

+		int hbProject10_A_Files10Count = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE).size();

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, hbProject10_A_Files10Count);

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, hbProject20_A_Files20Count);

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, 0);

@@ -532,16 +532,16 @@
 	// -> corresponding model descriptor must be removed

 	public void testProjectDeleted() throws Exception {

 

-		int expectedHb20ResourcesForArProject20A = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A,

-				Hummingbird20MMDescriptor.INSTANCE).size();

-		int expectedHb20ResourcesForArProject20B = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B,

-				Hummingbird20MMDescriptor.INSTANCE).size();

+		int expectedHb20ResourcesForArProject20A = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE).size();

+		int expectedHb20ResourcesForArProject20B = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE).size();

 		int expectedResourcesInEditingDomain20 = expectedHb20ResourcesForArProject20A + expectedHb20ResourcesForArProject20B;

-		int expectedUml2ResourcesForArProject20B = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B,

-				UML2MMDescriptor.INSTANCE).size();

+		int expectedUml2ResourcesForArProject20B = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, UML2MMDescriptor.INSTANCE).size();

 

-		int expectedUml2ResourcesForArProject20A = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A,

-				UML2MMDescriptor.INSTANCE).size();

+		int expectedUml2ResourcesForArProject20A = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, UML2MMDescriptor.INSTANCE).size();

 		int expectedResourcesInEditingDomain3Uml2 = expectedUml2ResourcesForArProject20A + expectedUml2ResourcesForArProject20B;

 

 		int expectedModelNumberForArProject20A = refWks.getReferenceProjectDescriptor(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A)

@@ -626,11 +626,10 @@
 		// check if model descriptor in project hbProject20_A has been put in place

 		assertProjectModelsSizeEquals(refWks.hbProject20_A, 1);

 

-		resourcesInEditingDomain10 += refWks

-				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE).size();

-		resourcesInEditingDomain20 += refWks

-				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE).size()

-				+ refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE).size();

+		resourcesInEditingDomain10 += refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE)

+				.size();

+		resourcesInEditingDomain20 += refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE)

+				.size() + refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE).size();

 		resourcesInEditingDomainUml2 += refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, UML2MMDescriptor.INSTANCE)

 				.size();

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);

@@ -699,10 +698,10 @@
 		assertProjectModelsSizeEquals(refWks.hbProject20_B, 2);

 

 		// check if resources in project hbProject20_A has been loaded

-		resourcesInEditingDomain20 += refWks

-				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE).size();

-		resourcesInEditingDomain10 += refWks

-				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE).size();

+		resourcesInEditingDomain20 += refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE)

+				.size();

+		resourcesInEditingDomain10 += refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE)

+				.size();

 		resourcesInEditingDomainUml2 += refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, UML2MMDescriptor.INSTANCE)

 				.size();

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain10, resourcesInEditingDomain10);

@@ -732,8 +731,7 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);

 

 		// add Uml2 resource content to the new created file

-		newFile.setContents(uml2FileProject20B_1.getContents(), true, false, null);

-		waitForModelLoading();

+		synchronizedSetFileContents(newFile, uml2FileProject20B_1.getContents());

 

 		// check if new model descriptor have been put in place

 		assertProjectModelsSizeEquals(refWks.hbProject10_A, 2);

@@ -761,12 +759,12 @@
 	public void testAlreadyLoadedFileChanged() throws Exception {

 		synchronizedOpenProject(refWks.hbProject20_B);

 		synchronizedOpenProject(refWks.hbProject10_A);

-		int resourcesInEditingDomain20 = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B,

-				Hummingbird20MMDescriptor.INSTANCE).size();

+		int resourcesInEditingDomain20 = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE).size();

 		int resourceUml2InArProject20_B = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, UML2MMDescriptor.INSTANCE)

 				.size();

-		int resourcesInEditingDomain10 = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A,

-				Hummingbird10MMDescriptor.INSTANCE).size();

+		int resourcesInEditingDomain10 = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE).size();

 		int resourceUml2InArProject10_A = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, UML2MMDescriptor.INSTANCE)

 				.size();

 

@@ -799,8 +797,7 @@
 		// =======================================================

 		// set empty content to the new created file

 		IFile newFile = refWks.hbProject10_A.getFile(newFileName);

-		newFile.setContents(new ByteArrayInputStream("".getBytes()), true, false, null); //$NON-NLS-1$

-		waitForModelLoading();

+		synchronizedSetFileContents(newFile, new ByteArrayInputStream("".getBytes())); //$NON-NLS-1$

 

 		// check if Uml2 model descriptor still put in place.

 		if (hasContentTypeOf(newFile, UML2MMDescriptor.INSTANCE)) {

@@ -866,12 +863,12 @@
 		synchronizedOpenProject(refWks.hbProject20_A);

 		synchronizedOpenProject(refWks.hbProject20_D);

 		synchronizedOpenProject(refWks.hbProject10_A);

-		int resourceAr20InProject_20_A = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A,

-				Hummingbird20MMDescriptor.INSTANCE).size();

-		int resourceAr20InProject_20_D = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D,

-				Hummingbird20MMDescriptor.INSTANCE).size();

-		int resourceAr10InProject_10_A = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A,

-				Hummingbird10MMDescriptor.INSTANCE).size();

+		int resourceAr20InProject_20_A = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_A, Hummingbird20MMDescriptor.INSTANCE).size();

+		int resourceAr20InProject_20_D = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D, Hummingbird20MMDescriptor.INSTANCE).size();

+		int resourceAr10InProject_10_A = refWks

+				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A, Hummingbird10MMDescriptor.INSTANCE).size();

 		int resourceUml2InProject_20_D = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_D, UML2MMDescriptor.INSTANCE)

 				.size();

 

@@ -1168,12 +1165,12 @@
 		synchronizedOpenProject(refWks.hbProject20_B);

 		synchronizedOpenProject(refWks.hbProject10_C);

 

-		int resource20InProject20_B = refWks

-				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE).size();

+		int resource20InProject20_B = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, Hummingbird20MMDescriptor.INSTANCE)

+				.size();

 		int resourceUml2InProject20_B = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B, UML2MMDescriptor.INSTANCE)

 				.size();

-		int resource10InProject10_C = refWks

-				.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C, Hummingbird10MMDescriptor.INSTANCE).size();

+		int resource10InProject10_C = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C, Hummingbird10MMDescriptor.INSTANCE)

+				.size();

 		int resourceUml2InProject10_C = refWks.getReferenceFiles(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C, UML2MMDescriptor.INSTANCE)

 				.size();

 

@@ -1209,12 +1206,13 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesInEditingDomainUml2);

 

-		assertNull(refWks.editingDomain20.getResourceSet().getResource(

-				URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B + "/"

-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20B_1, true), false));

+		assertNull(refWks.editingDomain20.getResourceSet()

+				.getResource(URI.createPlatformResourceURI(

+						"/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20B_1, true),

+						false));

 

-		assertNotNull(refWks.editingDomain20.getResourceSet().getResource(

-				URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B + "/" + newName20, true), false));

+		assertNotNull(refWks.editingDomain20.getResourceSet()

+				.getResource(URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_B + "/" + newName20, true), false));

 

 		IFile newFile20 = refWks.hbProject20_B.getFile(newName20);

 		assertNotNull(newFile20);

@@ -1244,12 +1242,13 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesInEditingDomainUml2);

 

-		assertNull(refWks.editingDomain10.getResourceSet().getResource(

-				URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/"

-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10C_1, true), false));

+		assertNull(refWks.editingDomain10.getResourceSet()

+				.getResource(URI.createPlatformResourceURI(

+						"/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10C_1, true),

+						false));

 

-		assertNotNull(refWks.editingDomain10.getResourceSet().getResource(

-				URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + newName10, true), false));

+		assertNotNull(refWks.editingDomain10.getResourceSet()

+				.getResource(URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + newName10, true), false));

 

 		IFile newFile10 = refWks.hbProject10_C.getFile(newName10);

 		assertNotNull(newFile10);

@@ -1283,9 +1282,10 @@
 		assertEditingDomainResourcesSizeEquals(refWks.editingDomain20, resourcesInEditingDomain20);

 		assertEditingDomainResourcesSizeEquals(refWks.editingDomainUml2, resourcesInEditingDomainUml2);

 

-		assertNull(refWks.editingDomainUml2.getResourceSet().getResource(

-				URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/"

-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false));

+		assertNull(refWks.editingDomainUml2.getResourceSet()

+				.getResource(URI.createPlatformResourceURI(

+						"/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true),

+						false));

 

 		assertNotNull(refWks.editingDomainUml2.getResourceSet().getResource(

 				URI.createPlatformResourceURI("/" + DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + newNameUml2, true), false));

@@ -1380,9 +1380,8 @@
 		synchronizedOpenProject(refWks.hbProject20_C);

 

 		List<org.eclipse.sphinx.examples.hummingbird20.instancemodel.Component> objects20 = new ArrayList<org.eclipse.sphinx.examples.hummingbird20.instancemodel.Component>();

-		Resource resource20_C_1 = refWks.editingDomain20.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_C + "/"

-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20C_1, true), false);

+		Resource resource20_C_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_C + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20C_1, true), false);

 		assertNotNull(resource20_C_1);

 		assertFalse(resource20_C_1.getContents().isEmpty());

 		Application application20 = (Application) resource20_C_1.getContents().get(0);

@@ -1402,9 +1401,8 @@
 

 		// Verify the references are resolved

 		List<org.eclipse.sphinx.examples.hummingbird20.instancemodel.Component> testObjects20 = new ArrayList<org.eclipse.sphinx.examples.hummingbird20.instancemodel.Component>();

-		Resource testResource20_C_1 = refWks.editingDomain20.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_C + "/"

-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20C_1, true), false);

+		Resource testResource20_C_1 = refWks.editingDomain20.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_C + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20C_1, true), false);

 		assertNotNull(testResource20_C_1);

 		assertFalse(testResource20_C_1.getContents().isEmpty());

 		Application testApplication20 = (Application) resource20_C_1.getContents().get(0);

@@ -1432,9 +1430,8 @@
 		// verify that no project references exist in hbProject10_C

 		assertEquals(0, refWks.hbProject10_C.getDescription().getReferencedProjects().length);

 

-		Resource resourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/"

-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

+		Resource resourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

 		assertNotNull(resourceUml2_C_1);

 		assertFalse(resourceUml2_C_1.getContents().isEmpty());

 

@@ -1471,9 +1468,8 @@
 

 		// Verify the references are unresolved

 		List<Port> testObjectUml2 = new ArrayList<Port>();

-		Resource testresourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/"

-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

+		Resource testresourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

 		assertNotNull(testresourceUml2_C_1);

 		assertTrue(testresourceUml2_C_1.getContents().size() > 0);

 		Model testModel = (Model) testresourceUml2_C_1.getContents().get(0);

@@ -1512,9 +1508,8 @@
 

 		// Verify the references are resolved

 		List<Port> testObjectUml2B = new ArrayList<Port>();

-		Resource testresourceUml2_C_1B = refWks.editingDomainUml2.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/"

-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

+		Resource testresourceUml2_C_1B = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

 		assertNotNull(testresourceUml2_C_1B);

 		assertTrue(testresourceUml2_C_1B.getContents().size() > 0);

 		Model testModelB = (Model) testresourceUml2_C_1B.getContents().get(0);

@@ -1555,9 +1550,8 @@
 		// ------------------------------------------------

 		// Verify the references are unresolved

 		List<Port> testObjectUml2 = new ArrayList<Port>();

-		Resource testresourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/"

-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

+		Resource testresourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

 		assertNotNull(testresourceUml2_C_1);

 		assertTrue(testresourceUml2_C_1.getContents().size() > 0);

 		Model testModel = (Model) testresourceUml2_C_1.getContents().get(0);

@@ -1599,9 +1593,8 @@
 

 		// Verify the references are resolved

 		List<Port> objectUml2 = new ArrayList<Port>();

-		testresourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/"

-						+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

+		testresourceUml2_C_1 = refWks.editingDomainUml2.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_C + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_10C_1, true), false);

 		assertNotNull(testresourceUml2_C_1);

 		assertTrue(testresourceUml2_C_1.getContents().size() > 0);

 		testModel = (Model) testresourceUml2_C_1.getContents().get(0);

@@ -1637,9 +1630,10 @@
 			synchronizedOpenProject(refWks.hbProject10_D);

 			synchronizedOpenProject(refWks.hbProject10_E);

 

-			Resource resource10_E_1 = refWks.editingDomain10.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true), false);

+			Resource resource10_E_1 = refWks.editingDomain10.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true),

+							false);

 			assertNotNull(resource10_E_1);

 			assertFalse(resource10_E_1.getContents().isEmpty());

 			org.eclipse.sphinx.examples.hummingbird10.Application application10 = (org.eclipse.sphinx.examples.hummingbird10.Application) resource10_E_1

@@ -1665,9 +1659,10 @@
 

 			//

 			// Verify the references are unresolved

-			Resource testResource10E_1 = refWks.editingDomain10.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true), false);

+			Resource testResource10E_1 = refWks.editingDomain10.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true),

+							false);

 			assertNotNull(testResource10E_1);

 			assertFalse(testResource10E_1.getContents().isEmpty());

 			org.eclipse.sphinx.examples.hummingbird10.Application testApplication10 = (org.eclipse.sphinx.examples.hummingbird10.Application) testResource10E_1

@@ -1690,9 +1685,10 @@
 

 			// ************************************

 			// HB20 Objects

-			Resource resource20_E_1 = refWks.editingDomain20.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true), false);

+			Resource resource20_E_1 = refWks.editingDomain20.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true),

+							false);

 

 			assertNotNull(resource20_E_1);

 			assertFalse(resource20_E_1.getContents().isEmpty());

@@ -1710,9 +1706,10 @@
 			// *********************************

 			// Uml2 Objects

 			List<Operation> testObjectUml2 = new ArrayList<Operation>();

-			Resource resourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true), false);

+			Resource resourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true),

+							false);

 			assertNotNull(resourceUml2_E_1);

 			assertFalse(resourceUml2_E_1.getContents().isEmpty());

 			Model model = (Model) resourceUml2_E_1.getContents().get(0);

@@ -1744,9 +1741,10 @@
 			//

 			// ********************************

 			// Verify the reference of HB20 objects are unresolved

-			Resource testResource20_E_1 = refWks.editingDomain20.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true), false);

+			Resource testResource20_E_1 = refWks.editingDomain20.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true),

+							false);

 			assertNotNull(testResource20_E_1);

 			assertFalse(testResource20_E_1.getContents().isEmpty());

 			Application testApplication20 = (Application) resource20_E_1.getContents().get(0);

@@ -1761,9 +1759,10 @@
 			// *************************************

 			// Verify the references of Uml2 Objects are unresolved

 			testObjectUml2.clear();

-			Resource testresourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true), false);

+			Resource testresourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true),

+							false);

 			assertNotNull(testresourceUml2_E_1);

 			assertTrue(testresourceUml2_E_1.getContents().size() > 0);

 			Model testModel = (Model) testresourceUml2_E_1.getContents().get(0);

@@ -1795,9 +1794,10 @@
 			synchronizedOpenProject(refWks.hbProject10_D);

 			synchronizedOpenProject(refWks.hbProject10_E);

 

-			Resource resource10_E_1 = refWks.editingDomain10.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true), false);

+			Resource resource10_E_1 = refWks.editingDomain10.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true),

+							false);

 			assertNotNull(resource10_E_1);

 			assertFalse(resource10_E_1.getContents().isEmpty());

 			org.eclipse.sphinx.examples.hummingbird10.Application application10 = (org.eclipse.sphinx.examples.hummingbird10.Application) resource10_E_1

@@ -1819,9 +1819,10 @@
 			//

 			//

 			// Verify the references are unresolved

-			Resource testResource10E_1 = refWks.editingDomain10.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true), false);

+			Resource testResource10E_1 = refWks.editingDomain10.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true),

+							false);

 			assertNotNull(testResource10E_1);

 			assertFalse(testResource10E_1.getContents().isEmpty());

 			org.eclipse.sphinx.examples.hummingbird10.Application testApplication10 = (org.eclipse.sphinx.examples.hummingbird10.Application) testResource10E_1

@@ -1845,9 +1846,10 @@
 

 			List<Operation> testObjectUml2 = new ArrayList<Operation>();

 

-			Resource resource20_E_1 = refWks.editingDomain20.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true), false);

+			Resource resource20_E_1 = refWks.editingDomain20.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true),

+							false);

 			// ************************************

 			// HB20 Objects

 			assertNotNull(resource20_E_1);

@@ -1865,9 +1867,10 @@
 

 			// *********************************

 			// Uml2 Objects

-			Resource resourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true), false);

+			Resource resourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true),

+							false);

 			assertNotNull(resourceUml2_E_1);

 			assertFalse(resourceUml2_E_1.getContents().isEmpty());

 			Model model = (Model) resourceUml2_E_1.getContents().get(0);

@@ -1893,9 +1896,10 @@
 			synchronizedCloseProject(refWks.hbProject20_D);

 

 			// Verify the references of Hummingbird objects are unresolved

-			Resource testResource20_E_1 = refWks.editingDomain20.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true), false);

+			Resource testResource20_E_1 = refWks.editingDomain20.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true),

+							false);

 

 			assertNotNull(testResource20_E_1);

 			assertFalse(testResource20_E_1.getContents().isEmpty());

@@ -1909,9 +1913,10 @@
 

 			// Verify the references of Uml2 Objects are unresolved

 			testObjectUml2.clear();

-			Resource testresourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true), false);

+			Resource testresourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true),

+							false);

 			assertNotNull(testresourceUml2_E_1);

 			assertFalse(testresourceUml2_E_1.getContents().isEmpty());

 			Model testModel = (Model) testresourceUml2_E_1.getContents().get(0);

@@ -1941,9 +1946,10 @@
 		{

 			synchronizedOpenProject(refWks.hbProject10_D);

 			synchronizedOpenProject(refWks.hbProject10_E);

-			Resource resource10_E_1 = refWks.editingDomain10.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true), false);

+			Resource resource10_E_1 = refWks.editingDomain10.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true),

+							false);

 			assertNotNull(resource10_E_1);

 			assertFalse(resource10_E_1.getContents().isEmpty());

 			org.eclipse.sphinx.examples.hummingbird10.Application application10 = (org.eclipse.sphinx.examples.hummingbird10.Application) resource10_E_1

@@ -1964,9 +1970,10 @@
 			synchronizedDeleteProject(refWks.hbProject10_D);

 			// /

 			// Verify the references are unresolved

-			Resource testResource10E_1 = refWks.editingDomain10.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true), false);

+			Resource testResource10E_1 = refWks.editingDomain10.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10E_1, true),

+							false);

 			assertNotNull(testResource10E_1);

 			assertFalse(testResource10E_1.getContents().isEmpty());

 			org.eclipse.sphinx.examples.hummingbird10.Application testApplication10 = (org.eclipse.sphinx.examples.hummingbird10.Application) testResource10E_1

@@ -1988,9 +1995,10 @@
 			synchronizedOpenProject(refWks.hbProject20_E);

 

 			// HB20 Objects

-			Resource resource20_E_1 = refWks.editingDomain20.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true), false);

+			Resource resource20_E_1 = refWks.editingDomain20.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true),

+							false);

 

 			assertNotNull(resource20_E_1);

 			assertFalse(resource20_E_1.getContents().isEmpty());

@@ -2008,9 +2016,10 @@
 			// *********************************

 			// Uml2 Objects

 			List<Operation> testObjectUml2 = new ArrayList<Operation>();

-			Resource resourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true), false);

+			Resource resourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true),

+							false);

 			assertNotNull(resourceUml2_E_1);

 			assertFalse(resourceUml2_E_1.getContents().isEmpty());

 			Model model = (Model) resourceUml2_E_1.getContents().get(0);

@@ -2036,9 +2045,10 @@
 			synchronizedDeleteProject(refWks.hbProject20_D);

 			//

 			// Verify the references of Hummingbird objects are unresolved

-			Resource testResource20_E_1 = refWks.editingDomain20.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true), false);

+			Resource testResource20_E_1 = refWks.editingDomain20.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20E_1, true),

+							false);

 

 			assertNotNull(testResource20_E_1);

 			assertFalse(testResource20_E_1.getContents().isEmpty());

@@ -2051,9 +2061,10 @@
 			}

 			// Verify the references of Uml2 Objects are unresolved

 			testObjectUml2.clear();

-			Resource testresourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet().getResource(

-					URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/"

-							+ DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true), false);

+			Resource testresourceUml2_E_1 = refWks.editingDomainUml2.getResourceSet()

+					.getResource(URI.createPlatformResourceURI(

+							DefaultTestReferenceWorkspace.HB_PROJECT_NAME_20_E + "/" + DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_1, true),

+							false);

 			assertNotNull(testresourceUml2_E_1);

 			assertTrue(testresourceUml2_E_1.getContents().size() > 0);

 			Model testModel = (Model) testresourceUml2_E_1.getContents().get(0);

diff --git a/tests/org.eclipse.sphinx.tests.platform.integration/src/org/eclipse/sphinx/tests/platform/integration/resource/ResourceDeltaVisitorTest.java b/tests/org.eclipse.sphinx.tests.platform.integration/src/org/eclipse/sphinx/tests/platform/integration/resource/ResourceDeltaVisitorTest.java
index 7e36864..88647a1 100644
--- a/tests/org.eclipse.sphinx.tests.platform.integration/src/org/eclipse/sphinx/tests/platform/integration/resource/ResourceDeltaVisitorTest.java
+++ b/tests/org.eclipse.sphinx.tests.platform.integration/src/org/eclipse/sphinx/tests/platform/integration/resource/ResourceDeltaVisitorTest.java
@@ -1,7 +1,7 @@
 /**

  * <copyright>

  *

- * Copyright (c) 2008-2013 See4sys, itemis and others.

+ * Copyright (c) 2008-2019 See4sys, itemis 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

@@ -167,18 +167,23 @@
 		synchronizedOpenProject(refWks.hbProject10_A);

 		// Check that project opened and included files added were handled.

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_OPENED)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1), MockResourceChangedHandler.ADD_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2), MockResourceChangedHandler.ADD_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3), MockResourceChangedHandler.ADD_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4), MockResourceChangedHandler.ADD_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5), MockResourceChangedHandler.ADD_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_OPENED)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1),

+						MockResourceChangedHandler.ADD_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2),

+						MockResourceChangedHandler.ADD_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3),

+						MockResourceChangedHandler.ADD_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4),

+						MockResourceChangedHandler.ADD_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5),

+						MockResourceChangedHandler.ADD_FILE)));

 

 	}

 

@@ -192,18 +197,23 @@
 		synchronizedCloseProject(refWks.hbProject10_A);

 

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_CLOSED)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5), MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_CLOSED)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5),

+						MockResourceChangedHandler.REMOVED_FILE)));

 	}

 

 	// Project Description Change

@@ -217,8 +227,8 @@
 

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

 		assertEquals(1, resourcesHandled.size());

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject20_E.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_DESCIPTION)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject20_E.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_DESCIPTION)));

 

 		// Add nature

 		handler.clearResourcesHandledMap();

@@ -226,16 +236,16 @@
 		ExtendedPlatform.addNature(refWks.hbProject10_A, natureId, null);

 		resourcesHandled = handler.getResourcesHandled();

 		assertEquals(1, resourcesHandled.size());

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_DESCIPTION)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_DESCIPTION)));

 

 		// Remove nature

 		handler.clearResourcesHandledMap();

 		ExtendedPlatform.removeNature(refWks.hbProject10_A, natureId, null);

 		resourcesHandled = handler.getResourcesHandled();

 		assertEquals(1, resourcesHandled.size());

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_DESCIPTION)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_DESCIPTION)));

 	}

 

 	// Project Setting change

@@ -249,12 +259,11 @@
 		assertTrue(settingFile_hb20.isAccessible());

 

 		// Set content in settingFile_hb10 to settingFile_hb20 to change metamodel vesion of hbProject10_A

-		settingFile_hb10.setContents(settingFile_hb20.getContents(), true, false, null);

+		synchronizedSetFileContents(settingFile_hb10, settingFile_hb20.getContents());

 

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_SETTING)));

-

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_SETTING)));

 	}

 

 	// Folder changed

@@ -273,8 +282,8 @@
 

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

 		assertEquals(1, resourcesHandled.size());

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_SETTING)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_SETTING)));

 

 		// -----------------------------

 		// Remove file

@@ -283,8 +292,8 @@
 		copiedSettingFile.delete(true, null);

 		resourcesHandled = handler.getResourcesHandled();

 		assertEquals(1, resourcesHandled.size());

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_SETTING)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_SETTING)));

 	}

 

 	// ----Private platform resource change

@@ -315,8 +324,7 @@
 		IFile hbFile_2 = refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2);

 

 		handler.clearResourcesHandledMap();

-		hbFile_1.setContents(hbFile_2.getContents(), true, false, null);

-		waitForModelLoading();

+		synchronizedSetFileContents(hbFile_1, hbFile_2.getContents());

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

 		assertEquals(1, resourcesHandled.size());

 		assertTrue(resourcesHandled.contains(new ResourceHandled(hbFile_1.getFullPath(), MockResourceChangedHandler.CHANGED_FILE)));

@@ -324,9 +332,8 @@
 		// Modify resource

 		handler.clearResourcesHandledMap();

 

-		Resource hbResource10 = refWks.editingDomain10.getResourceSet().getResource(

-				URI.createPlatformResourceURI(DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/"

-						+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);

+		Resource hbResource10 = refWks.editingDomain10.getResourceSet().getResource(URI.createPlatformResourceURI(

+				DefaultTestReferenceWorkspace.HB_PROJECT_NAME_10_A + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3, true), false);

 		assertNotNull(hbResource10);

 		assertFalse(hbResource10.getContents().isEmpty());

 		assertTrue(hbResource10.getContents().get(0) instanceof Application);

@@ -361,8 +368,9 @@
 		ModelSaveManager.INSTANCE.saveModel(hbResource10, false, null);

 		resourcesHandled = handler.getResourcesHandled();

 		assertEquals(1, resourcesHandled.size());

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3), MockResourceChangedHandler.CHANGED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3),

+						MockResourceChangedHandler.CHANGED_FILE)));

 		// =======================================================

 		// Hummingbird 20 resource

 		handler.clearResourcesHandledMap();

@@ -391,8 +399,9 @@
 		ModelSaveManager.INSTANCE.saveModel(hbResource20, false, null);

 		resourcesHandled = handler.getResourcesHandled();

 

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject20_D.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1), MockResourceChangedHandler.CHANGED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject20_D.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_20_20D_1),

+						MockResourceChangedHandler.CHANGED_FILE)));

 		// =======================================================

 		// UML2

 		// Change contents

@@ -401,10 +410,8 @@
 		IFile uml2File_3 = refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_3);

 

 		handler.clearResourcesHandledMap();

-		uml2File_1.setContents(uml2File_2.getContents(), true, false, null);

-		waitForModelLoading();

-		uml2File_3.setContents(uml2File_2.getContents(), true, false, null);

-		waitForModelLoading();

+		synchronizedSetFileContents(uml2File_1, uml2File_2.getContents());

+		synchronizedSetFileContents(uml2File_3, uml2File_2.getContents());

 		resourcesHandled = handler.getResourcesHandled();

 		assertEquals(2, resourcesHandled.size());

 		assertTrue(resourcesHandled.contains(new ResourceHandled(uml2File_1.getFullPath(), MockResourceChangedHandler.CHANGED_FILE)));

@@ -465,16 +472,21 @@
 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

 

 		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.REMOVED_PROJECT)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4), MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5), MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4),

+						MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5),

+						MockResourceChangedHandler.REMOVED_FILE)));

 

 	}

 

@@ -485,15 +497,30 @@
 		IFolder folder = refWks.hbProject10_F.getFolder(DefaultTestReferenceWorkspace.HB_FOLDER_NAME_10_10F_1);

 		folder.delete(true, null);

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_F.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FOLDER_NAME_10_10F_1 + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10F_1),

-				MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_F.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FOLDER_NAME_10_10F_1 + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10F_2),

-				MockResourceChangedHandler.REMOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_F.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FOLDER_NAME_10_10F_1 + "/" + DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10F_3),

-				MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(

+				resourcesHandled

+						.contains(

+								new ResourceHandled(

+										refWks.hbProject10_F.getFullPath()

+												.append(DefaultTestReferenceWorkspace.HB_FOLDER_NAME_10_10F_1 + "/"

+														+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10F_1),

+										MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(

+				resourcesHandled

+						.contains(

+								new ResourceHandled(

+										refWks.hbProject10_F.getFullPath()

+												.append(DefaultTestReferenceWorkspace.HB_FOLDER_NAME_10_10F_1 + "/"

+														+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10F_2),

+										MockResourceChangedHandler.REMOVED_FILE)));

+		assertTrue(

+				resourcesHandled

+						.contains(

+								new ResourceHandled(

+										refWks.hbProject10_F.getFullPath()

+												.append(DefaultTestReferenceWorkspace.HB_FOLDER_NAME_10_10F_1 + "/"

+														+ DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10F_3),

+										MockResourceChangedHandler.REMOVED_FILE)));

 		assertTrue(resourcesHandled.contains(new ResourceHandled(folder.getFullPath(), MockResourceChangedHandler.REMOVED_FOLDER)));

 	}

 

@@ -599,18 +626,23 @@
 		synchronizedRenameProject(refWks.hbProject10_A, "NewProject");

 

 		List<ResourceHandled> resourcesHandled = handler.getResourcesHandled();

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(),

-				MockResourceChangedHandler.CHANGED_PROJECT_RENAMED)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1), MockResourceChangedHandler.MOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2), MockResourceChangedHandler.MOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3), MockResourceChangedHandler.MOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4), MockResourceChangedHandler.MOVED_FILE)));

-		assertTrue(resourcesHandled.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(

-				DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5), MockResourceChangedHandler.MOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath(), MockResourceChangedHandler.CHANGED_PROJECT_RENAMED)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1),

+						MockResourceChangedHandler.MOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2),

+						MockResourceChangedHandler.MOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_3),

+						MockResourceChangedHandler.MOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_4),

+						MockResourceChangedHandler.MOVED_FILE)));

+		assertTrue(resourcesHandled

+				.contains(new ResourceHandled(refWks.hbProject10_A.getFullPath().append(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_5),

+						MockResourceChangedHandler.MOVED_FILE)));

 

 	}

 

diff --git a/tests/org.eclipse.sphinx.testutils.integration.referenceworkspace/src/org/eclipse/sphinx/testutils/integration/referenceworkspace/tests/ReferenceWorkspaceChangeListenerTest.java b/tests/org.eclipse.sphinx.testutils.integration.referenceworkspace/src/org/eclipse/sphinx/testutils/integration/referenceworkspace/tests/ReferenceWorkspaceChangeListenerTest.java
index 6b6451a..b8f330a 100644
--- a/tests/org.eclipse.sphinx.testutils.integration.referenceworkspace/src/org/eclipse/sphinx/testutils/integration/referenceworkspace/tests/ReferenceWorkspaceChangeListenerTest.java
+++ b/tests/org.eclipse.sphinx.testutils.integration.referenceworkspace/src/org/eclipse/sphinx/testutils/integration/referenceworkspace/tests/ReferenceWorkspaceChangeListenerTest.java
@@ -1,7 +1,7 @@
 /**

  * <copyright>

  *

- * Copyright (c) 2008-2013 See4sys, itemis and others.

+ * Copyright (c) 2008-2019 See4sys, itemis 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

@@ -146,7 +146,7 @@
 		assertTrue(settingFile_hb20.isAccessible());

 

 		// Set content in settingFile_hb10 to settingFile_hb20 to change metamodel vesion of hbProject10_A

-		settingFile_hb10.setContents(settingFile_hb20.getContents(), true, false, null);

+		synchronizedSetFileContents(settingFile_hb10, settingFile_hb20.getContents());

 

 		Map<IProject, Collection<String>> projectsWithChangedSettings = referenceWorkspaceChangeListener.getProjectsWithChangedSettings();

 		assertTrue(projectsWithChangedSettings.keySet().contains(refWks.hbProject10_A.getName()));

@@ -166,7 +166,7 @@
 		assertTrue(settingFile_hb10.isAccessible());

 		assertTrue(settingFile_hb20.isAccessible());

 

-		settingFile_hb10.setContents(settingFile_hb20.getContents(), true, true, null);

+		synchronizedSetFileContents(settingFile_hb10, settingFile_hb20.getContents());

 

 		settingFile_hb20.copy(refWks.hbProject10_A.getFullPath().append(".settings/newSettingfile.prefs"), true, null);

 

@@ -192,8 +192,7 @@
 		IFile hbFile_1 = refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_1);

 		IFile hbFile_2 = refWks.hbProject10_A.getFile(DefaultTestReferenceWorkspace.HB_FILE_NAME_10_10A_2);

 

-		hbFile_1.setContents(hbFile_2.getContents(), true, false, null);

-		waitForModelLoading();

+		synchronizedSetFileContents(hbFile_1, hbFile_2.getContents());

 		Collection<IFile> changedFiles = referenceWorkspaceChangeListener.getChangedFiles();

 		assertEquals(1, changedFiles.size());

 		assertTrue(changedFiles.contains(hbFile_1));

@@ -272,10 +271,8 @@
 		IFile uml2File_2 = refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_2);

 		IFile uml2File_3 = refWks.hbProject20_E.getFile(DefaultTestReferenceWorkspace.UML2_FILE_NAME_20E_3);

 

-		uml2File_1.setContents(uml2File_2.getContents(), true, false, null);

-		waitForModelLoading();

-		uml2File_3.setContents(uml2File_2.getContents(), true, false, null);

-		waitForModelLoading();

+		synchronizedSetFileContents(uml2File_1, uml2File_2.getContents());

+		synchronizedSetFileContents(uml2File_3, uml2File_2.getContents());

 

 		assertTrue(changedFiles.contains(EcorePlatformUtil.getFile(uml2File_1)));

 		assertTrue(changedFiles.contains(EcorePlatformUtil.getFile(uml2File_3)));

diff --git a/tests/org.eclipse.sphinx.testutils.integration/src/org/eclipse/sphinx/testutils/integration/AbstractIntegrationTestCase.java b/tests/org.eclipse.sphinx.testutils.integration/src/org/eclipse/sphinx/testutils/integration/AbstractIntegrationTestCase.java
index 5614104..e28121a 100644
--- a/tests/org.eclipse.sphinx.testutils.integration/src/org/eclipse/sphinx/testutils/integration/AbstractIntegrationTestCase.java
+++ b/tests/org.eclipse.sphinx.testutils.integration/src/org/eclipse/sphinx/testutils/integration/AbstractIntegrationTestCase.java
@@ -1,7 +1,7 @@
 /**

  * <copyright>

  *

- * Copyright (c) 2008-2013 See4sys, itemis, BMW Car IT and others.

+ * Copyright (c) 2008-2019 See4sys, itemis, BMW Car IT 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

@@ -37,8 +37,6 @@
 import java.util.Properties;

 import java.util.Set;

 

-import junit.framework.TestCase;

-

 import org.eclipse.core.resources.IContainer;

 import org.eclipse.core.resources.IFile;

 import org.eclipse.core.resources.IFolder;

@@ -92,6 +90,8 @@
 import org.eclipse.sphinx.testutils.integration.internal.ReferenceProjectDescriptor;

 import org.eclipse.sphinx.testutils.integration.internal.ReferenceWorkspaceExtractor;

 

+import junit.framework.TestCase;

+

 @SuppressWarnings("nls")

 public abstract class AbstractIntegrationTestCase<T extends IReferenceWorkspace> extends TestCase {

 

@@ -309,7 +309,7 @@
 		synchronizedUnloadAddedResources();

 

 		// If existing Projects' description were changed, reset its by copying contents from reference file

-		syncrhonizedResetProjectDescriptions();

+		synchronizedResetProjectDescriptions();

 

 		// If existing Projects' setting were changed, reset them by copying contents from reference file

 		synchronizedResetProjectSettings();

@@ -332,8 +332,8 @@
 	private Collection<IProject> detectProjectsToOpen() {

 		Set<IProject> projectsToOpen = new HashSet<IProject>();

 		if (!(referenceWorkspaceChangeListener.getAddedFiles().size() > 0 || referenceWorkspaceChangeListener.getChangedFiles().size() > 0

-				|| referenceWorkspaceChangeListener.getProjectsWithChangedDescription().size() > 0 || referenceWorkspaceChangeListener

-				.getProjectsWithChangedSettings().size() > 0)) {

+				|| referenceWorkspaceChangeListener.getProjectsWithChangedDescription().size() > 0

+				|| referenceWorkspaceChangeListener.getProjectsWithChangedSettings().size() > 0)) {

 			return Collections.emptySet();

 		}

 		for (IFile changedFile : referenceWorkspaceChangeListener.getChangedFiles()) {

@@ -450,7 +450,7 @@
 	 *

 	 * @throws Exception

 	 */

-	private void syncrhonizedResetProjectDescriptions() throws Exception {

+	private void synchronizedResetProjectDescriptions() throws Exception {

 		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {

 			@Override

 			public void run(IProgressMonitor monitor) throws CoreException {

@@ -517,15 +517,15 @@
 	 *         directory; <code>false</code> otherwise.

 	 */

 	private boolean needToExtractReferenceWorkspaceArchive() throws Exception {

-		java.net.URI referenceWorkspaceInputFileURI = getReferenceWorkspaceFileAccessor().getInputFileURI(

-				internalRefWks.getReferenceWorkspaceArchiveFileName(), true);

+		java.net.URI referenceWorkspaceInputFileURI = getReferenceWorkspaceFileAccessor()

+				.getInputFileURI(internalRefWks.getReferenceWorkspaceArchiveFileName(), true);

 		File referenceWorkspaceArchive = null;

 		if (referenceWorkspaceInputFileURI != null) {

 			referenceWorkspaceArchive = new File(referenceWorkspaceInputFileURI);

 		}

 		File propertiesFile = new File(referenceWorkspaceTempDir, REFERENCE_WORKSPACE_PROPERTIES_FILE_NAME);

-		return !propertiesFile.exists() || referenceWorkspaceArchive != null

-				&& referenceWorkspaceArchive.lastModified() > referenceWorkspaceTempDir.lastModified();

+		return !propertiesFile.exists()

+				|| referenceWorkspaceArchive != null && referenceWorkspaceArchive.lastModified() > referenceWorkspaceTempDir.lastModified();

 	}

 

 	private TestFileAccessor getReferenceWorkspaceFileAccessor() {

@@ -1040,7 +1040,6 @@
 				}

 			}

 		}

-

 	}

 

 	// FIXME Consider to rely on IProject rather than just project name

@@ -1056,7 +1055,6 @@
 				metaModelDescriptor);

 		assertNotNull(editingDomain);

 		assertEditingDomainContainsNamedResources(editingDomain, filesNames);

-

 	}

 

 	// FIXME Consider to rely on IProject rather than just project name

@@ -1107,16 +1105,16 @@
 	}

 

 	protected void synchronizedLoadFile(IFile file) {

-		ModelLoadManager.INSTANCE.loadFile(file, false, null);

+		ModelLoadManager.INSTANCE.loadFile(file, true, null);

 		waitForModelLoading();

 	}

 

 	protected void synchronizedUnloadFile(IFile file) {

-		ModelLoadManager.INSTANCE.unloadFile(file, false, null);

+		ModelLoadManager.INSTANCE.unloadFile(file, true, null);

 		waitForModelLoading();

 	}

 

-	protected void synchronizedDeleteFile(final IFile file) throws Exception {

+	protected void synchronizedDeleteFile(final IFile file) throws CoreException {

 		assertNotNull(file);

 

 		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {

@@ -1162,6 +1160,20 @@
 		waitForModelLoading();

 	}

 

+	protected void synchronizedSetFileContents(final IFile file, final InputStream source) throws CoreException {

+		assertNotNull(source);

+

+		IWorkspaceRunnable runnable = new IWorkspaceRunnable() {

+			@Override

+			public void run(IProgressMonitor monitor) throws CoreException {

+				file.setContents(source, true, true, monitor);

+			}

+		};

+		ResourcesPlugin.getWorkspace().run(runnable, ResourcesPlugin.getWorkspace().getRoot(), IWorkspace.AVOID_UPDATE, new NullProgressMonitor());

+		file.refreshLocal(IResource.DEPTH_ZERO, new NullProgressMonitor());

+		waitForModelLoading();

+	}

+

 	/**

 	 * Deletes external file or directory with specified <code>path</code>. If external resource is a directory then all

 	 * files and subdirectories under this directory are deleted. If it is a file then only the file is deleted.

@@ -1242,27 +1254,27 @@
 	}

 

 	protected void synchronizedLoadProject(IProject project, boolean includeReferencedProjects) {

-		ModelLoadManager.INSTANCE.loadProject(project, includeReferencedProjects, false, null);

+		ModelLoadManager.INSTANCE.loadProject(project, includeReferencedProjects, true, null);

 		waitForModelLoading();

 	}

 

 	protected void synchronizedLoadAllProjects() {

-		ModelLoadManager.INSTANCE.loadProjects(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()), true, false, null);

+		ModelLoadManager.INSTANCE.loadProjects(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()), true, true, null);

 		waitForModelLoading();

 	}

 

 	protected void synchronizedUnloadProject(IProject project, boolean includeReferencedProjects) {

-		ModelLoadManager.INSTANCE.unloadProject(project, includeReferencedProjects, false, null);

+		ModelLoadManager.INSTANCE.unloadProject(project, includeReferencedProjects, true, null);

 		waitForModelLoading();

 	}

 

 	protected void synchronizedUnloadProjects(Collection<IProject> projectsToUnload, boolean includeReferenceProjects) {

-		ModelLoadManager.INSTANCE.unloadProjects(projectsToUnload, includeReferenceProjects, false, null);

+		ModelLoadManager.INSTANCE.unloadProjects(projectsToUnload, includeReferenceProjects, true, null);

 		waitForModelLoading();

 	}

 

 	protected void synchronizedUnloadAllProjects() {

-		ModelLoadManager.INSTANCE.unloadProjects(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()), false, false, null);

+		ModelLoadManager.INSTANCE.unloadProjects(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()), false, true, null);

 		waitForModelLoading();

 	}

 

@@ -1504,6 +1516,13 @@
 	}

 

 	/**

+	 * Blocks the calling thread until model loading completes.

+	 */

+	protected void waitForModelSaving() {

+		waitForFamily(IExtendedPlatformConstants.FAMILY_MODEL_SAVING);

+	}

+

+	/**

 	 * Blocks the calling thread until automatic build completes.

 	 */

 	protected void waitForAutoBuild() {

@@ -1621,6 +1640,8 @@
 						}

 					}

 				}

+

+				importedFile.refreshLocal(IResource.DEPTH_ZERO, new NullProgressMonitor());

 			}

 		}

 	}