Bug 421944 - Client should have option to close project spaces and free memory
Further fixes on tests with transactional editing domain
https://bugs.eclipse.org/bugs/show_bug.cgi?id=421944
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/AbstractEMFStoreHandlerWithResult.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/AbstractEMFStoreHandlerWithResult.java
index 90fc358..1984267 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/AbstractEMFStoreHandlerWithResult.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/AbstractEMFStoreHandlerWithResult.java
@@ -51,7 +51,7 @@
 			protected T doRun() {

 				return handleWithResult();

 			}

-		}.run(null, false);

+		}.run(false, null);

 

 		this.event = null;

 		return null;

diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsACUserTester.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsACUserTester.java
index 4700cc3..f229b94 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsACUserTester.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsACUserTester.java
@@ -53,7 +53,7 @@
 					return new Boolean(isACUser).equals(expectedValue);

 				}

 			};

-			return command.run(null, false);

+			return command.run(false, null);

 		}

 		return false;

 	}

diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsAdminTester.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsAdminTester.java
index 3615904..75a7eca 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsAdminTester.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/IsAdminTester.java
@@ -54,7 +54,7 @@
 					return new Boolean(isAdmin).equals(expectedValue);

 				}

 			};

-			return command.run(null, false);

+			return command.run(false, null);

 		}

 		return false;

 	}

diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ProjectIsSharedTester.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ProjectIsSharedTester.java
index 4152922..5ce9d4e 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ProjectIsSharedTester.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ProjectIsSharedTester.java
@@ -40,7 +40,7 @@
 					return isShared.equals(expectedValue);

 				}

 			};

-			return command.run(null, false);

+			return command.run(false, null);

 		}

 		return false;

 	}

diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ServerInfoIsLoggedInTester.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ServerInfoIsLoggedInTester.java
index 26bd6dc..d8c2a29 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ServerInfoIsLoggedInTester.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/testers/ServerInfoIsLoggedInTester.java
@@ -40,7 +40,7 @@
 					return ret.equals(expectedValue);

 				}

 			};

-			Boolean result = command.run(null, false);

+			Boolean result = command.run(false, null);

 			return result;

 		}

 		return false;

diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/client/util/RunESCommand.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/client/util/RunESCommand.java
index aab064b..043edf1 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/client/util/RunESCommand.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/client/util/RunESCommand.java
@@ -135,7 +135,7 @@
 				}

 			};

 

-			final T result = cmd.run(editingDomain, false);

+			final T result = cmd.run(false, editingDomain);

 

 			if (cmd.hasException()) {

 				throw cmd.getException();

@@ -226,7 +226,7 @@
 				}

 			};

 

-			cmd.run(editingDomain, false);

+			cmd.run(false, editingDomain);

 

 			if (cmd.hasException()) {

 				throw cmd.getException();

@@ -285,7 +285,7 @@
 					// ignore

 				}

 			}

-		}.run(editingDomain, false);

+		}.run(false, editingDomain);

 	}

 

 	/**

@@ -347,6 +347,6 @@
 				}

 				return null;

 			}

-		}.run(editingDomain, false);

+		}.run(false, editingDomain);

 	}

 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferJob.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferJob.java
index dbb641e..a366730 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferJob.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferJob.java
@@ -81,7 +81,7 @@
 			protected void doRun() {
 				sessionId = projectSpace.getUsersession().getSessionId();
 			}
-		}.run(projectSpace.getContentEditingDomain(), false);
+		}.run(false, projectSpace.getContentEditingDomain());
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
index 59e0f0e..2a44e89 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/filetransfer/FileTransferManager.java
@@ -135,7 +135,7 @@
 				projectSpace.getWaitingUploads().add(identifier);
 				projectSpace.saveProjectSpaceOnly();
 			}
-		}.run(projectSpace.getContentEditingDomain(), true);
+		}.run(true, projectSpace.getContentEditingDomain());
 
 	}
 
@@ -166,7 +166,7 @@
 							projectSpace.getWaitingUploads().remove(fi);
 							projectSpace.saveProjectSpaceOnly();
 						}
-					}.run(projectSpace.getContentEditingDomain(), true);
+					}.run(true, projectSpace.getContentEditingDomain());
 					continue;
 
 				}
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ApplyOperationsRunnable.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ApplyOperationsRunnable.java
index 2c28b52..6a8a35f 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ApplyOperationsRunnable.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/ApplyOperationsRunnable.java
@@ -77,6 +77,6 @@
 					}

 				}

 			}

-		}.run(projectSpace.getContentEditingDomain(), false);

+		}.run(false, projectSpace.getContentEditingDomain());

 	}

 }

diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/api/ESLocalProjectImpl.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/api/ESLocalProjectImpl.java
index 338096d..9edf146 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/api/ESLocalProjectImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/impl/api/ESLocalProjectImpl.java
@@ -116,7 +116,7 @@
 			public String call() throws Exception {
 				return toInternalAPI().getProjectName();
 			}
-		}, toInternalAPI().getContentEditingDomain());
+		});
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/AbstractEMFStoreCommand.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/AbstractEMFStoreCommand.java
index 6e417e0..675a1b6 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/AbstractEMFStoreCommand.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/AbstractEMFStoreCommand.java
@@ -115,19 +115,19 @@
 	 *            ignored

 	 */

 	protected void aRun(boolean ignoreExceptions) {

-		aRun(ESWorkspaceProviderImpl.getInstance().getEditingDomain(), ignoreExceptions);

+		aRun(ignoreExceptions, ESWorkspaceProviderImpl.getInstance().getEditingDomain());

 

 	}

 

 	/**

 	 * Executes the command on the given editing domain.

 	 * 

-	 * @param editingDomain the editing domain

 	 * @param ignoreExceptions

 	 *            should be set to {@code true} if any thrown exception in the execution of the command should be

 	 *            ignored

+	 * @param editingDomain the editing domain

 	 */

-	protected void aRun(EditingDomain editingDomain, boolean ignoreExceptions) {

+	protected void aRun(boolean ignoreExceptions, EditingDomain editingDomain) {

 		this.editingDomain = editingDomain;

 		this.ignoreExceptions = ignoreExceptions;

 		editingDomain.getCommandStack().execute(this);

diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommand.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommand.java
index 807560b..697cf4b 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommand.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommand.java
@@ -55,12 +55,11 @@
 

 	/**

 	 * Executes the command on the given editing domain.

-	 * 

-	 * @param editingDomain the editing domain

 	 * @param ignoreExceptions true if any thrown exception in the execution of the command should be ignored.

+	 * @param editingDomain the editing domain

 	 */

-	public void run(EditingDomain editingDomain, boolean ignoreExceptions) {

-		super.aRun(editingDomain, ignoreExceptions);

+	public void run(boolean ignoreExceptions, EditingDomain editingDomain) {

+		super.aRun(ignoreExceptions, editingDomain);

 	}

 

 	/**

diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameter.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameter.java
index 8917194..5d7bb3d 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameter.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameter.java
@@ -39,12 +39,12 @@
 	 * Executes the command on the given editing domain.

 	 * 

 	 * @param parameter the parameter

-	 * @param editingDomain the editing domain

 	 * @param ignoreExceptions true if any thrown exception in the execution of the command should be ignored.

+	 * @param editingDomain the editing domain

 	 */

-	public void run(T parameter, EditingDomain editingDomain, boolean ignoreExceptions) {

+	public void run(T parameter, boolean ignoreExceptions, EditingDomain editingDomain) {

 		this.parameter = parameter;

-		super.aRun(editingDomain, ignoreExceptions);

+		super.aRun(ignoreExceptions, editingDomain);

 	}

 

 	/**

diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameterAndResult.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameterAndResult.java
index 6035830..936264c 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameterAndResult.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithParameterAndResult.java
@@ -74,13 +74,13 @@
 	 * Executes the command on the given editing domain.

 	 * 

 	 * @param parameter the parameter

-	 * @param editingDomain the editing domain

 	 * @param ignoreExceptions true if any thrown exception in the execution of the command should be ignored.

+	 * @param editingDomain the editing domain

 	 * @return the result

 	 */

-	public T run(U parameter, EditingDomain editingDomain, boolean ignoreExceptions) {

+	public T run(U parameter, boolean ignoreExceptions, EditingDomain editingDomain) {

 		this.parameter = parameter;

-		super.aRun(editingDomain, ignoreExceptions);

+		super.aRun(ignoreExceptions, editingDomain);

 		return this.result;

 	}

 

diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithResult.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithResult.java
index 43d6d0d..5934f53 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithResult.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/util/EMFStoreCommandWithResult.java
@@ -64,13 +64,13 @@
 

 	/**

 	 * Executes the command on the given editing domain.

-	 * 

-	 * @param editingDomain the editing domain

 	 * @param ignoreExceptions true if any thrown exception in the execution of the command should be ignored.

+	 * @param editingDomain the editing domain

+	 * 

 	 * @return the result

 	 */

-	public T run(EditingDomain editingDomain, boolean ignoreExceptions) {

-		super.aRun(editingDomain, ignoreExceptions);

+	public T run(boolean ignoreExceptions, EditingDomain editingDomain) {

+		super.aRun(ignoreExceptions, editingDomain);

 		return this.result;

 	}

 

diff --git a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/src/org/eclipse/emf/emfstore/exampleclient/Application.java b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/src/org/eclipse/emf/emfstore/exampleclient/Application.java
index b838ef5..62e6a7d 100644
--- a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/src/org/eclipse/emf/emfstore/exampleclient/Application.java
+++ b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/src/org/eclipse/emf/emfstore/exampleclient/Application.java
@@ -166,7 +166,7 @@
 				}
 				return session.toAPI();
 			}
-		}.run(null, false);
+		}.run(false, null);
 
 		// Retrieves a list of existing (and accessible) projects
 		// on the sever and deletes them permanently (to have a
@@ -183,7 +183,7 @@
 					throw new RuntimeException(e);
 				}
 			}
-		}.run(null, false);
+		}.run(false, null);
 	}
 
 	/**
diff --git a/tests/org.eclipse.emf.emfstore.client.api.test/TransactionalAllAPITests.launch b/tests/org.eclipse.emf.emfstore.client.api.test/TransactionalAllAPITests.launch
new file mode 100644
index 0000000..9a4bed1
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.api.test/TransactionalAllAPITests.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.emfstore.branding,org.eclipse.emf.emfstore.client.example.test,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.test.alltests,org.eclipse.emf.emfstore.client.test.ui,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.historybrowsercomparator,org.eclipse.emf.emfstore.common.model.edit,org.eclipse.emf.emfstore.ecore,org.eclipse.emf.emfstore.example.helloworld,org.eclipse.emf.emfstore.example.installer,org.eclipse.emf.emfstore.example.merging,org.eclipse.emf.emfstore.example.sessionprovider,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.fuzzy,org.eclipse.emf.emfstore.fuzzy.emf,org.eclipse.emf.emfstore.fuzzy.emf.edit,org.eclipse.emf.emfstore.fuzzy.emf.editor,org.eclipse.emf.emfstore.fuzzy.emf.example,org.eclipse.emf.emfstore.fuzzy.emf.test,org.eclipse.emf.emfstore.mongodb,org.eclipse.emf.emfstore.mongodb.client,org.eclipse.emf.emfstore.mongodb.server,org.eclipse.emf.emfstore.server.model.edit"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/AllAPITests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.emfstore.client.api.test.AllAPITests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.emfstore.client.api.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.emf.cdo.server.product.tcp_h2"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.transaction@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/ModelElementTest.java b/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/ModelElementTest.java
index b11e8ed..27f48ab 100644
--- a/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/ModelElementTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/ModelElementTest.java
@@ -66,7 +66,7 @@
 				leagueA.getPlayers().add(playerA);
 				leagueA.getPlayers().add(playerB);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(4, getLocalProject().getAllModelElements().size());
 
@@ -81,7 +81,7 @@
 				leagueA.getPlayers().add(playerC);
 				leagueA.getPlayers().add(playerD);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(6, getLocalProject().getAllModelElements().size());
 		assertEquals(2, getLocalProject().getModelElements().size());
@@ -93,7 +93,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(tournamentA);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Matchup matchupA = Create.matchup(null, null);
 		final Matchup matchupB = Create.matchup(null, null);
@@ -110,7 +110,7 @@
 				matchupA.getGames().add(gameA);
 				matchupA.getGames().add(gameB);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(10, getLocalProject().getAllModelElements().size());
 
@@ -121,7 +121,7 @@
 				matchupB.getGames().add(gameC);
 				matchupB.getGames().add(gameD);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(13, getLocalProject().getAllModelElements().size());
 		assertEquals(3, getLocalProject().getModelElements().size());
@@ -141,7 +141,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(player);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(getLocalProject().getAllModelElements().contains(player));
 		assertTrue(getLocalProject().contains(player));
@@ -152,7 +152,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().remove(player);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(size, getLocalProject().getAllModelElements().size());
 		assertFalse(getLocalProject().getAllModelElements().contains(player));
@@ -164,7 +164,7 @@
 			protected void doRun() {
 				getLocalProject().undoLastOperation();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(size + 1, getLocalProject().getAllModelElements().size());
 		assertFalse(getLocalProject().getAllModelElements().contains(player));
@@ -181,7 +181,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(tournament);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Player player = Create.player(ProjectChangeUtil.PLAYER_HEINRICH_NAME);
 		final Player player2 = Create.player(ProjectChangeUtil.PLAYER_WALTER_NAME);
@@ -194,7 +194,7 @@
 				tournament.getPlayers().add(player2);
 				tournament.getPlayers().add(player3);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(3, tournament.getPlayers().size());
 
@@ -203,7 +203,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().remove(player2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(2, tournament.getPlayers().size());
 		assertTrue(getLocalProject().contains(player));
@@ -220,7 +220,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(tournament);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -229,7 +229,7 @@
 					tournament.getReceivesTrophy().add(false);
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(numTrophies, tournament.getReceivesTrophy().size());
 
@@ -238,7 +238,7 @@
 			protected void doRun() {
 				getLocalProject().revert();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, tournament.getReceivesTrophy().size());
 	}
@@ -254,7 +254,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(tournament);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -263,7 +263,7 @@
 					tournament.getReceivesTrophy().add(false);
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(numTrophies, tournament.getReceivesTrophy().size());
 
@@ -274,7 +274,7 @@
 					tournament.getReceivesTrophy().remove(i);
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(numTrophies - numDeletes, tournament.getReceivesTrophy().size());
 
@@ -283,7 +283,7 @@
 			protected void doRun() {
 				getLocalProject().revert();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, tournament.getReceivesTrophy().size());
 	}
@@ -299,7 +299,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(tournament);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -308,7 +308,7 @@
 					tournament.getReceivesTrophy().add(false);
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(numTrophies, tournament.getReceivesTrophy().size());
 
@@ -326,7 +326,7 @@
 			protected void doRun() {
 				getLocalProject().revert();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, tournament.getReceivesTrophy().size());
 	}
@@ -342,7 +342,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(tournament);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -351,7 +351,7 @@
 					tournament.getReceivesTrophy().add(Boolean.FALSE);
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(numTrophies, tournament.getReceivesTrophy().size());
 
@@ -370,7 +370,7 @@
 			protected void doRun() {
 				getLocalProject().revert();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, tournament.getReceivesTrophy().size());
 	}
@@ -386,7 +386,7 @@
 				getLocalProject().getModelElements().add(tournamentA);
 				getLocalProject().getModelElements().add(tournamentB);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Matchup matchupA = Create.matchup(null, null);
 
@@ -395,7 +395,7 @@
 			protected void doRun() {
 				tournamentA.getMatchups().add(matchupA);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(1, tournamentA.getMatchups().size());
 		assertTrue(tournamentA.getMatchups().contains(matchupA));
@@ -405,7 +405,7 @@
 			protected void doRun() {
 				tournamentB.getMatchups().add(matchupA);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(1, tournamentB.getMatchups().size());
 		assertTrue(tournamentB.getMatchups().contains(matchupA));
@@ -416,7 +416,7 @@
 			protected void doRun() {
 				getLocalProject().undoLastOperation();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, tournamentB.getMatchups().size());
 
@@ -437,14 +437,14 @@
 				getLocalProject().getModelElements().add(tournamentA);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
 			protected void doRun() {
 				tournamentA.getMatchups().add(matchupA);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ESModelElementId matchupID = getLocalProject().getModelElementId(matchupA);
 
@@ -453,7 +453,7 @@
 			protected void doRun() {
 				getLocalProject().getModelElements().add(tournamentB);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(1, tournamentA.getMatchups().size());
 		assertTrue(tournamentA.getMatchups().contains(matchupA));
@@ -463,7 +463,7 @@
 			protected void doRun() {
 				tournamentA.getMatchups().remove(matchupA);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(2, getLocalProject().getModelElements().size());
 
@@ -472,7 +472,7 @@
 			protected void doRun() {
 				tournamentB.getMatchups().add(matchupA);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(1, tournamentB.getMatchups().size());
 		assertTrue(tournamentB.getMatchups().contains(matchupA));
@@ -485,7 +485,7 @@
 			protected void doRun() {
 				getLocalProject().undoLastOperation();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, tournamentB.getMatchups().size());
 		assertEquals(0, tournamentA.getMatchups().size());
@@ -496,7 +496,7 @@
 			protected void doRun() {
 				getLocalProject().undoLastOperation();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, tournamentA.getMatchups().size());
 		assertEquals(2, getLocalProject().getModelElements().size());
@@ -506,7 +506,7 @@
 			protected void doRun() {
 				getLocalProject().undoLastOperation();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(1, tournamentA.getMatchups().size());
 		assertEquals(2, getLocalProject().getModelElements().size());
diff --git a/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/SharedProjectTest.java b/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/SharedProjectTest.java
index 559c970..0bac1ab 100644
--- a/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/SharedProjectTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.api.test/src/org/eclipse/emf/emfstore/client/api/test/SharedProjectTest.java
@@ -288,12 +288,12 @@
 
 		getLocalProject().commit(monitor);
 
-		RunESCommand.run(new Callable<Void>() {
+		checkedoutCopy.run(new Callable<Void>() {
 			public Void call() throws Exception {
 				checkedoutPlayer.setName("B"); //$NON-NLS-1$
 				return null;
 			}
-		}, getProjectSpace().getContentEditingDomain());
+		});
 
 		checkedoutCopy.commit(monitor);
 	}
@@ -317,13 +317,13 @@
 
 		// tournament does not contain players
 		final Tournament tournament = Create.tournament(false);
-		RunESCommand.run(new Callable<Void>() {
+		secondProject.run(new Callable<Void>() {
 			public Void call() throws Exception {
 				secondProject.getModelElements().add(tournament);
 				tournament.getPlayers().add(player);
 				return null;
 			}
-		}, getProjectSpace().getContentEditingDomain());
+		});
 
 		getLocalProject().save();
 		secondProject.save();
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/TransactionalAllChangeTrackingTests.launch b/tests/org.eclipse.emf.emfstore.client.changetracking.test/TransactionalAllChangeTrackingTests.launch
new file mode 100644
index 0000000..512a85a
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/TransactionalAllChangeTrackingTests.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.emfstore.branding,org.eclipse.emf.emfstore.client.example.test,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.test.alltests,org.eclipse.emf.emfstore.client.test.ui,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.historybrowsercomparator,org.eclipse.emf.emfstore.common.model.edit,org.eclipse.emf.emfstore.ecore,org.eclipse.emf.emfstore.example.helloworld,org.eclipse.emf.emfstore.example.installer,org.eclipse.emf.emfstore.example.merging,org.eclipse.emf.emfstore.example.sessionprovider,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.fuzzy,org.eclipse.emf.emfstore.fuzzy.emf,org.eclipse.emf.emfstore.fuzzy.emf.edit,org.eclipse.emf.emfstore.fuzzy.emf.editor,org.eclipse.emf.emfstore.fuzzy.emf.example,org.eclipse.emf.emfstore.fuzzy.emf.test,org.eclipse.emf.emfstore.mongodb,org.eclipse.emf.emfstore.mongodb.client,org.eclipse.emf.emfstore.mongodb.server,org.eclipse.emf.emfstore.server.model.edit"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/AllChangeTrackingTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.emfstore.client.changetracking.test.AllChangeTrackingTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.emfstore.client.changetracking.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.emf.cdo.server.product.tcp_h2"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.transaction@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/AttributeTest.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/AttributeTest.java
index f8daacc..73f97ac 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/AttributeTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/AttributeTest.java
@@ -91,7 +91,7 @@
 				getProject().addModelElement(useCase);
 				useCase.setName(OLD_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -106,7 +106,7 @@
 				useCase.setName(C_NAME);
 				useCase.setName(NEW_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(NEW_NAME, useCase.getName());
 		assertEquals(4, getProjectSpace().getOperations().size());
@@ -119,7 +119,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(operations.size(), 1);
 
@@ -131,7 +131,7 @@
 			protected void doRun() {
 				reverse.apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -151,7 +151,7 @@
 				getProject().addModelElement(useCase);
 				useCase.setName(OLD_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -167,7 +167,7 @@
 				useCase.setName(C_NAME);
 				useCase.setName(null);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(null, useCase.getName());
 
@@ -178,7 +178,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(operations.size(), 1);
 
@@ -188,7 +188,7 @@
 			protected void doRun() {
 				reverse.apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 
@@ -209,7 +209,7 @@
 				getProject().addModelElement(useCase);
 				useCase.setName(null);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -223,7 +223,7 @@
 				useCase.setName(B_NAME);
 				useCase.setName(C_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(C_NAME, useCase.getName());
 
@@ -235,7 +235,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(operations.size(), 1);
 
@@ -246,7 +246,7 @@
 			protected void doRun() {
 				reverse.apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -266,7 +266,7 @@
 				getProject().addModelElement(useCase);
 				useCase.setName(OLD_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -281,7 +281,7 @@
 				useCase.setName(C_NAME);
 				useCase.setName(OLD_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(OLD_NAME, useCase.getName());
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
@@ -311,7 +311,7 @@
 				getProject().addModelElement(useCase);
 				useCase.setName(null);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -326,7 +326,7 @@
 				useCase.setName(C_NAME);
 				useCase.setName(null);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(null, useCase.getName());
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
@@ -339,7 +339,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// should not have created any operations, we were just resetting the name to its original value
 		assertEquals(operations.size(), 0);
@@ -361,7 +361,7 @@
 				useCase.setName(OLD_NAME);
 				useCase.setDescription(OLD_DESCRIPTION);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -380,7 +380,7 @@
 				useCase.setDescription(OLD_DESCRIPTION);
 				useCase.setName(OLD_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
@@ -407,7 +407,7 @@
 				getProject().addModelElement(useCase);
 				useCase.setName(OLD_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -424,7 +424,7 @@
 				useCase.setDescription(NEW_DESCRIPTION);
 				useCase.setName(NEW_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(NEW_NAME, useCase.getName());
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
@@ -435,7 +435,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(operations.size(), 2);
 
@@ -447,7 +447,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 
@@ -483,7 +483,7 @@
 				section.setName(SOME_SECTION);
 				actor.setName(HOMER);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -501,7 +501,7 @@
 				section.setName(HOME);
 				useCase.setName(NEW_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(7, operations.size());
@@ -511,7 +511,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -521,7 +521,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -555,7 +555,7 @@
 				section.setName(SOME_SECTION);
 				actor.setName(HOMER);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -576,7 +576,7 @@
 				useCase.setName(NEW_NAME);
 				useCase.setDescription(FINAL_DESC);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(NEW_NAME, useCase.getName());
@@ -589,7 +589,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -599,7 +599,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -621,7 +621,7 @@
 				section.setName(NAME);
 				section.setDescription(OLD_DESCRIPTION);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -645,7 +645,7 @@
 				}
 				section.setDescription(DESC_2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(DESC_2, section.getDescription());
@@ -656,7 +656,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -666,7 +666,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -689,7 +689,7 @@
 				section.setName(NAME);
 				section.setDescription(OLD_DESCRIPTION);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -712,7 +712,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(2, operations.size());
@@ -723,7 +723,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -733,7 +733,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -755,7 +755,7 @@
 				section.setName(NAME);
 				section.setDescription(OLD_DESCRIPTION);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -778,7 +778,7 @@
 
 				section.setDescription(DESC_2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(2, operations.size());
@@ -788,7 +788,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -798,7 +798,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -821,7 +821,7 @@
 				useCase.setName(NAME_OF_TEST_ELEMENT);
 				useCase.setDescription(DESCRIPTION_OF_TEST_ELEMENT);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(NAME_OF_TEST_ELEMENT, useCase.getName());
 
@@ -834,7 +834,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// now expecting only the create with folded in attributes
 		assertEquals(operations.size(), 1);
@@ -852,7 +852,7 @@
 			protected void doRun() {
 				op.reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), originalProject));
 
@@ -861,7 +861,7 @@
 			protected void doRun() {
 				op.reverse().reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -891,7 +891,7 @@
 				useCase2.setName(NAME_OF_TEST_ELEMENT2);
 				useCase2.setDescription(DESCRIPTION_OF_TEST_ELEMENT2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(NAME_OF_TEST_ELEMENT, useCase.getName());
 		assertEquals(NAME_OF_TEST_ELEMENT2, useCase2.getName());
@@ -904,7 +904,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// now expecting only the creates with folded in attributes
 		assertEquals(2, operations.size());
@@ -930,7 +930,7 @@
 				op2.reverse().apply(getProject());
 				op.reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), originalProject));
 	}
@@ -968,7 +968,7 @@
 
 				section.setDescription(DESC_2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -985,7 +985,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// expect create, the composite and 1 attribute op
 		assertEquals(3, operations.size());
@@ -1005,7 +1005,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), originalProject));
 
@@ -1017,7 +1017,7 @@
 				operations.get(1).apply(getProject());
 				operations.get(2).apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -1039,7 +1039,7 @@
 				useCase.setDescription(ORIGINAL_DESCRIPTION);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project originalProject = ModelUtil.clone(getProject());
 
@@ -1050,7 +1050,7 @@
 				useCase.setDescription(DESCRIPTION_OF_TEST_ELEMENT);
 				getProject().deleteModelElement(useCase);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -1062,7 +1062,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// now expecting only the delete with folded in attributes
 		assertEquals(1, operations.size());
@@ -1081,7 +1081,7 @@
 			protected void doRun() {
 				op.reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), originalProject));
 
@@ -1090,7 +1090,7 @@
 			protected void doRun() {
 				op.reverse().reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -1121,7 +1121,7 @@
 				useCase2.setDescription(ORIGINAL_DESCRIPTION2);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project originalProject = ModelUtil.clone(getProject());
 
@@ -1140,14 +1140,14 @@
 
 				getProject().deleteModelElement(useCase);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
 			protected void doRun() {
 				getProject().deleteModelElement(useCase2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -1159,7 +1159,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// now expecting only the deletes with folded in attributes
 		assertEquals(2, operations.size());
@@ -1184,7 +1184,7 @@
 				op2.reverse().apply(getProject());
 				op.reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), originalProject));
 	}
@@ -1262,7 +1262,6 @@
 	 */
 	@Test
 	public void attributeChangesACAAndDelete() throws InvalidHandleException, IOException {
-
 		final TestElement section = Create.testElement();
 		new EMFStoreCommand() {
 			@Override
@@ -1271,7 +1270,7 @@
 				section.setName(ORIGINAL_NAME);
 				section.setDescription(ORIGINAL_DESCRIPTION);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project originalProject = ModelUtil.clone(getProject());
 
@@ -1296,7 +1295,7 @@
 
 				getProject().deleteModelElement(section);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -1312,7 +1311,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// expect 1 attribute op, the composite and the delete with folded in attribute
 		assertEquals(3, operations.size());
@@ -1339,7 +1338,7 @@
 					reverse.apply(getProject());
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), originalProject));
 
@@ -1351,7 +1350,7 @@
 				operations.get(1).apply(getProject());
 				operations.get(2).apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
 	}
@@ -1376,7 +1375,7 @@
 				useCase.setName(NEW_NAME);
 				getProject().deleteModelElement(useCase);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		// expect create, 2 attribute ops, delete
@@ -1387,7 +1386,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// expect attributes folding into create, and create and delete removed,
 		// as they would be directly adjacent to each other
@@ -1410,7 +1409,7 @@
 			protected void doRun() {
 				getProject().addModelElement(useCase2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project originalProject = ModelUtil.clone(getProject());
 
@@ -1425,7 +1424,7 @@
 				useCase.getReferences().add(useCase2);
 				getProject().deleteModelElement(useCase);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		// expect create, 1 attribute ops, 1 multiref op, the delete
@@ -1451,7 +1450,7 @@
 				operations.get(1).reverse().apply(getProject());
 				operations.get(0).reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), originalProject));
 	}
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/CompositeTest.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/CompositeTest.java
index 5a8841e..b2d9f2c 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/CompositeTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/canonization/CompositeTest.java
@@ -69,7 +69,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -80,7 +80,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(operations.size(), 0);
 
@@ -102,7 +102,7 @@
 				getProject().addModelElement(useCase);
 				useCase.setName(OLD_NAME);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -129,7 +129,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(operations.size(), 1);
@@ -139,7 +139,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// should not have left any operations, we were just resetting the name to its original value
 		assertEquals(operations.size(), 0);
@@ -163,7 +163,7 @@
 				useCase.setName(OLD_NAME);
 				useCase.setDescription(OLD_DESCRIPTION);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project expectedProject = ModelUtil.clone(getProject());
 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));
@@ -192,7 +192,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(operations.size(), 1);
@@ -202,7 +202,7 @@
 			protected void doRun() {
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// should not have left any operations, we were just resetting the name to its original value
 		assertEquals(operations.size(), 0);
@@ -238,7 +238,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(operations.size(), 1);
@@ -250,7 +250,7 @@
 				comp.setMainOperation(comp.getSubOperations().get(1)); // setName to from "A" to "B"
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// the main one was a candidate for removal, but since it is the main one, it may not be touched
 		// in this case it will not even be modified
@@ -287,7 +287,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(operations.size(), 1);
@@ -299,7 +299,7 @@
 				comp.setMainOperation(comp.getSubOperations().get(0)); // setName to from "oldName" to "A"
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		// the main one was a candidate for removal, but since it is the main one, it may not be removed
 		// it might have been altered though (newValue, oldValue etc., might have changed in the canonization
@@ -337,7 +337,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 		assertEquals(operations.size(), 1);
@@ -348,7 +348,7 @@
 				comp.setMainOperation(comp.getSubOperations().get(1)); // setName to from "A" to "B"
 				OperationsCanonizer.canonize(operations);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		// since this composite is a noop, everything should have been removed
 		assertEquals(comp.getSubOperations().size(), 0);
 	}
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/command/CommandTest.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/command/CommandTest.java
index f1c8161..85b0120 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/command/CommandTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/command/CommandTest.java
@@ -95,7 +95,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = ESWorkspaceProviderImpl
 				.getInstance().getEditingDomain();
@@ -157,7 +157,7 @@
 				createComment.getReferences().add(createUser);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Command delete = DeleteCommand.create(ESWorkspaceProviderImpl
 				.getInstance().getEditingDomain(), workPackage);
@@ -184,7 +184,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = ESWorkspaceProviderImpl
 				.getInstance().getEditingDomain();
@@ -237,7 +237,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = ESWorkspaceProviderImpl
 				.getInstance().getEditingDomain();
@@ -279,7 +279,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = ESWorkspaceProviderImpl
 				.getInstance().getEditingDomain();
@@ -393,7 +393,7 @@
 				assertEquals(getProject(), ModelUtil.getProject(useCase));
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project project = ModelUtil.getProject(useCase);
 		final ModelElementId useCaseId = project.getModelElementId(useCase);
@@ -633,7 +633,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = getProjectSpace()
 				.getContentEditingDomain();
@@ -699,7 +699,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = getProjectSpace()
 				.getContentEditingDomain();
@@ -724,7 +724,7 @@
 			protected void doRun() {
 				editingDomain.getCommandStack().undo();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		// does not work but is strange anyway
 		// assertTrue(editingDomain.getCommandStack().canRedo());
 		assertEquals(1, leafSection.getContainedElements().size());
@@ -746,7 +746,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = getProjectSpace()
 				.getContentEditingDomain();
@@ -789,7 +789,7 @@
 			protected void doRun() {
 				getProject().addModelElement(leafSection);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final EditingDomain editingDomain = getProjectSpace()
 				.getContentEditingDomain();
@@ -939,7 +939,7 @@
 				getProject().addModelElement(leafSection);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ModelElementId workPackageId = getProject().getModelElementId(
 				workPackage);
 
@@ -986,7 +986,7 @@
 				getProject().addModelElement(leafSection);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, getProjectSpace().getOperations().size());
 
@@ -1021,7 +1021,7 @@
 				getProject().addModelElement(leafSection);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, getProjectSpace().getOperations().size());
 		final EditingDomain editingDomain = getProjectSpace()
@@ -1059,7 +1059,7 @@
 				// provoke NPE
 				col.getModelElements();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), true);
+		}.run(true, getProjectSpace().getContentEditingDomain());
 	}
 
 	@Test(expected = NullPointerException.class)
@@ -1072,6 +1072,6 @@
 				// provoke NPE
 				col.getModelElements();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 }
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ContainmentNotificationTest.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ContainmentNotificationTest.java
index 4f70944..53d4837 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ContainmentNotificationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ContainmentNotificationTest.java
@@ -65,7 +65,7 @@
 				// section2.getModelElements().add(useCase);
 				useCase.setContainer(section2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final NotificationRecording recording = ((ProjectSpaceImpl) getProjectSpace()).getNotificationRecorder()
 			.getRecording();
@@ -120,7 +120,7 @@
 				// req.getRefiningRequirements().add(child);
 				child.setContainer2(req);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<NotificationInfo> rec = getRecording().asMutableList();
 
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MoveNotificationTest.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MoveNotificationTest.java
index 1ae6438..37fd8ec 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MoveNotificationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MoveNotificationTest.java
@@ -77,7 +77,7 @@
 				// now move actor 2 to top of the list
 				useCase.getNonContained_NToM().move(0, actor2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final NotificationRecording recording = ((ProjectSpaceImpl) getProjectSpace()).getNotificationRecorder()
 			.getRecording();
@@ -116,7 +116,7 @@
 			protected void doRun() {
 				project.addModelElement(tournament1);
 			}
-		}.run(projectSpace.getContentEditingDomain(), false);
+		}.run(false, projectSpace.getContentEditingDomain());
 		assertTrue(project.contains(tournament1));
 		assertTrue(UNEXPECTED_NOTIFICATIONS,
 			observer.resetNotifyCalled() && observer.resetAddedCalled() && !observer.resetRemovedCalled()
@@ -128,7 +128,7 @@
 			protected void doRun() {
 				tournament1.getContainedElements().add(matchup);
 			}
-		}.run(projectSpace.getContentEditingDomain(), false);
+		}.run(false, projectSpace.getContentEditingDomain());
 		assertTrue(project.contains(matchup));
 		assertTrue(tournament1.getContainedElements().contains(matchup));
 		assertTrue(UNEXPECTED_NOTIFICATIONS,
@@ -141,7 +141,7 @@
 			protected void doRun() {
 				project.addModelElement(tournament2);
 			}
-		}.run(projectSpace.getContentEditingDomain(), false);
+		}.run(false, projectSpace.getContentEditingDomain());
 		assertTrue(project.contains(tournament2));
 		assertTrue(UNEXPECTED_NOTIFICATIONS,
 			observer.resetNotifyCalled() && observer.resetAddedCalled() && !observer.resetRemovedCalled()
@@ -162,7 +162,7 @@
 				tournament1.getContainedElements().remove(matchup);
 				tournament2.getContainedElements().add(matchup);
 			}
-		}.run(projectSpace.getContentEditingDomain(), false);
+		}.run(false, projectSpace.getContentEditingDomain());
 		assertTrue(!tournament1.getContainedElements().contains(matchup));
 		assertTrue(tournament2.getContainedElements().contains(matchup));
 		assertTrue(UNEXPECTED_NOTIFICATIONS,
@@ -175,7 +175,7 @@
 			protected void doRun() {
 				projectSpace.undoLastOperation();
 			}
-		}.run(projectSpace.getContentEditingDomain(), false);
+		}.run(false, projectSpace.getContentEditingDomain());
 		assertTrue(!tournament1.getContainedElements().contains(matchup));
 		assertTrue(!tournament2.getContainedElements().contains(matchup));
 		assertTrue(project.contains(matchup));
@@ -189,7 +189,7 @@
 			protected void doRun() {
 				projectSpace.undoLastOperation();
 			}
-		}.run(projectSpace.getContentEditingDomain(), false);
+		}.run(false, projectSpace.getContentEditingDomain());
 		assertTrue(tournament1.getContainedElements().contains(matchup));
 		assertTrue(!tournament2.getContainedElements().contains(matchup));
 		assertTrue(UNEXPECTED_NOTIFICATIONS,
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MultiReferenceNotificationTest.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MultiReferenceNotificationTest.java
index 271dc79..1568ce4 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MultiReferenceNotificationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/MultiReferenceNotificationTest.java
@@ -73,7 +73,7 @@
 				// notifications from this operations are tested
 				actor.getNonContained_1ToN().addAll(Arrays.asList(useCases));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<NotificationInfo> rec = getRecording().asMutableList();
 
@@ -131,7 +131,7 @@
 				// notifications from this operations are tested
 				actor.getNonContained_NToM().addAll(Arrays.asList(useCases));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<NotificationInfo> rec = getRecording().asMutableList();
 
@@ -191,7 +191,7 @@
 				actor.getNonContained_1ToN().addAll(Arrays.asList(useCasesIn));
 				actor.getNonContained_1ToN().removeAll(Arrays.asList(useCasesOut));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<NotificationInfo> rec = getRecording().asMutableList();
 
@@ -253,7 +253,7 @@
 				actor.getNonContained_NToM().removeAll(Arrays.asList(useCasesOut));
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<NotificationInfo> rec = getRecording().asMutableList();
 
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ReferenceNotificationTest.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ReferenceNotificationTest.java
index 7ad6652..2a2443d 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ReferenceNotificationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/notification/ReferenceNotificationTest.java
@@ -60,7 +60,7 @@
 				// notifications from this operations are tested

 				useCase.setNonContained_NTo1(actor);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<NotificationInfo> rec = getRecording().asMutableList();

 

@@ -123,7 +123,7 @@
 				actor.getNonContained_1ToN().add(useCase);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<NotificationInfo> rec = getRecording().asMutableList();

 

@@ -172,7 +172,7 @@
 				// notifications from this operations are tested

 				useCase.getNonContained_NToM().add(actor);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<NotificationInfo> rec = getRecording().asMutableList();

 

@@ -220,7 +220,7 @@
 				actor.getNonContained_1ToN().add(useCase);

 				actor.getNonContained_1ToN().remove(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<NotificationInfo> rec = getRecording().asMutableList();

 

@@ -269,7 +269,7 @@
 				useCase.getNonContained_NToM().add(actor);

 				useCase.getNonContained_NToM().remove(actor);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<NotificationInfo> rec = getRecording().asMutableList();

 

diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/toplogy/Topology1to1Test.java b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/toplogy/Topology1to1Test.java
index 94dfd6d..5932cfc 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/toplogy/Topology1to1Test.java
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/src/org/eclipse/emf/emfstore/client/changetracking/test/toplogy/Topology1to1Test.java
@@ -613,7 +613,7 @@
 				leafSection.getContainedElements().add(solution2);

 				issue.setContainedElement(solution1);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(issue.getContainedElement(), solution1);

 		assertTrue(leafSection.getContainedElements().contains(solution2));

@@ -626,7 +626,7 @@
 			protected void doRun() {

 				issue.setContainedElement(solution2);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertSame(solution2, issue.getContainedElement());

 		assertTrue(leafSection.getContainedElements().isEmpty());

diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/TransactionalAllConflictDetectionTests.launch b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/TransactionalAllConflictDetectionTests.launch
new file mode 100644
index 0000000..51e85c3
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/TransactionalAllConflictDetectionTests.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.emfstore.branding,org.eclipse.emf.emfstore.client.example.test,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.test.alltests,org.eclipse.emf.emfstore.client.test.ui,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.historybrowsercomparator,org.eclipse.emf.emfstore.common.model.edit,org.eclipse.emf.emfstore.ecore,org.eclipse.emf.emfstore.example.helloworld,org.eclipse.emf.emfstore.example.installer,org.eclipse.emf.emfstore.example.merging,org.eclipse.emf.emfstore.example.sessionprovider,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.fuzzy,org.eclipse.emf.emfstore.fuzzy.emf,org.eclipse.emf.emfstore.fuzzy.emf.edit,org.eclipse.emf.emfstore.fuzzy.emf.editor,org.eclipse.emf.emfstore.fuzzy.emf.example,org.eclipse.emf.emfstore.fuzzy.emf.test,org.eclipse.emf.emfstore.mongodb,org.eclipse.emf.emfstore.mongodb.client,org.eclipse.emf.emfstore.mongodb.server,org.eclipse.emf.emfstore.server.model.edit"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/AllConflictDetectionTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.emfstore.client.conflictdetection.test.AllConflictDetectionTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.emfstore.client.conflictdetection.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.emf.cdo.server.product.tcp_h2"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.transaction@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionAttributeTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionAttributeTest.java
index 66b2734..f835322 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionAttributeTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionAttributeTest.java
@@ -70,8 +70,11 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();

 		final List<AbstractOperation> ops2 = ps2.getOperations();

 

-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);

-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());

+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,

+			ps2.getContentEditingDomain());

+		assertEquals(

+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),

+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());

 

 		assertEquals(conflicts.size(), 1);

 

@@ -94,7 +97,7 @@
 				testElement.getContainedElements().add(containedElement);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());

 		final Project project2 = ps2.getProject();

@@ -109,15 +112,24 @@
 			@Override

 			protected void doRun() {

 				testElement1.setName(CHANGE_1);

+			}

+		}.run(false, getProjectSpace().getContentEditingDomain());

+		new EMFStoreCommand() {

+

+			@Override

+			protected void doRun() {

 				testElement2.setName(CHANGE_1);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, ps2.getContentEditingDomain());

 

 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();

 		final List<AbstractOperation> ops2 = ps2.getOperations();

 

-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);

-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());

+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,

+			ps2.getContentEditingDomain());

+		assertEquals(

+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),

+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());

 		// should not conflict, the same change happens on both sides

 		assertEquals(1, conflicts.size());

 

@@ -150,8 +162,11 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();

 		final List<AbstractOperation> ops2 = ps2.getOperations();

 

-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);

-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());

+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,

+			ps2.getContentEditingDomain());

+		assertEquals(

+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),

+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());

 

 		assertEquals(conflicts.size(), 0);

 

diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionCreateTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionCreateTest.java
index 813e73d..8e7852b 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionCreateTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionCreateTest.java
@@ -86,7 +86,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = secondProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			secondProjectSpace.getContentEditingDomain());
 
 		assertTrue(conflicts.size() > 0);
 	}
@@ -126,7 +127,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = secondProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			secondProjectSpace.getContentEditingDomain());
 
 		assertTrue(conflicts.size() > 0);
 	}
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionDeleteTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionDeleteTest.java
index 9d0a45e..ac80039 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionDeleteTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionDeleteTest.java
@@ -67,13 +67,16 @@
 				getProject().deleteModelElement(actor1);
 				actor2.setName(CHANGE_TO_THE_DELETED_OBJECT_ON_ANOTHER_WORKING_COPY);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -97,7 +100,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
@@ -115,13 +118,16 @@
 				actor2.setName(CHANGE_TO_OBJECT_INSIDE_DELTREE_ON_ANOTHER_WORKING_COPY);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -142,7 +148,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
@@ -159,13 +165,16 @@
 				section2.setName(CHANGE_TO_OBJECT_INSIDE_DELTREE_ON_ANOTHER_WORKING_COPY);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -188,7 +197,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
@@ -206,13 +215,16 @@
 				project2.deleteModelElement(section2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 0);
 
@@ -237,7 +249,7 @@
 				section.getContainedElements().add(pack);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
@@ -257,13 +269,16 @@
 				project2.deleteModelElement(section2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -288,7 +303,7 @@
 				section.getContainedElements().add(useCase);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
@@ -308,13 +323,16 @@
 				project2.deleteModelElement(section2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		// technically no conflict, since annotated milestone will not be deleted,
 		// but there is no way to tell containment from non-containment changes,
@@ -345,7 +363,7 @@
 				br2.setContainer(pack);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(pack.getContainedElements().get(0), br1);
 		assertEquals(pack.getContainedElements().get(1), br2);
@@ -356,7 +374,7 @@
 				section.getContainedElements().add(pack);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
@@ -375,13 +393,16 @@
 				project2.deleteModelElement(section2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		// a move change is a change... from users perspective it should not be lost, probably..
 		// currently considered to be a hard conflict, because the user should know
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMapTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMapTest.java
index ca5e321..c148a4e 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMapTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMapTest.java
@@ -77,8 +77,9 @@
 		updateMapEntryNonContainedKey(clonedTestElement, clonedKey, QUUX);
 
 		final Set<AbstractOperation> conflicts = getConflicts(
-			getProjectSpace().getLocalChangePackage().getOperations(),
-			clonedProjectSpace.getLocalChangePackage().getOperations(), getProject());
+			getProjectSpace().getLocalChangePackage().getOperations(), getProjectSpace().getContentEditingDomain(),
+			clonedProjectSpace.getLocalChangePackage().getOperations(), clonedProjectSpace.getContentEditingDomain(),
+			getProject());
 
 		assertTrue(conflicts.size() > 0);
 
@@ -134,8 +135,9 @@
 		}, clonedProjectSpace.getContentEditingDomain());
 
 		final Set<AbstractOperation> conflicts = getConflicts(
-			getProjectSpace().getLocalChangePackage().getOperations(),
-			clonedProjectSpace.getLocalChangePackage().getOperations(), getProject());
+			getProjectSpace().getLocalChangePackage().getOperations(), getProjectSpace().getContentEditingDomain(),
+			clonedProjectSpace.getLocalChangePackage().getOperations(), clonedProjectSpace.getContentEditingDomain(),
+			getProject());
 
 		assertTrue(conflicts.size() > 0);
 
@@ -179,8 +181,9 @@
 			.getBundle(ORG_ECLIPSE_EMF_EMFSTORE_COMMON_MODEL)).addLogListener(logListener);
 
 		getConflicts(
-			getProjectSpace().getLocalChangePackage().getOperations(),
-			clonedProjectSpace.getLocalChangePackage().getOperations(), getProject());
+			getProjectSpace().getLocalChangePackage().getOperations(), getProjectSpace().getContentEditingDomain(),
+			clonedProjectSpace.getLocalChangePackage().getOperations(), clonedProjectSpace.getContentEditingDomain(),
+			getProject());
 
 		assertTrue(logListener.didReceive());
 	}
@@ -240,7 +243,8 @@
 		Platform.getLog(Platform
 			.getBundle(ORG_ECLIPSE_EMF_EMFSTORE_COMMON_MODEL)).addLogListener(logListener);
 
-		getConflicts(operations, operations2, getProject());
+		getConflicts(operations, getProjectSpace().getContentEditingDomain(), operations2,
+			clonedProjectSpace.getContentEditingDomain(), getProject());
 
 		assertTrue(logListener.didReceive());
 	}
@@ -268,7 +272,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain(), getProject());
 
 		assertEquals(0, conflicts.size());
 	}
@@ -312,7 +317,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain(), getProject());
 
 		assertEquals(0, conflicts.size());
 	}
@@ -341,7 +347,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain(), getProject());
 
 		assertTrue(conflicts.size() > 0);
 	}
@@ -371,7 +378,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain(), getProject());
 
 		assertTrue(conflicts.size() > 0);
 	}
@@ -401,7 +409,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain(), getProject());
 
 		assertTrue(conflicts.size() > 0);
 	}
@@ -431,7 +440,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2, getProject());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain(), getProject());
 
 		assertEquals(1, conflicts.size());
 	}
@@ -456,8 +466,8 @@
 		updateMapEntry(clonedTestElement, FOO, QUUX);
 
 		final Set<AbstractOperation> conflicts = getConflicts(
-			getProjectSpace().getLocalChangePackage().getOperations(),
-			clonedProjectSpace.getLocalChangePackage().getOperations());
+			getProjectSpace().getLocalChangePackage().getOperations(), getProjectSpace().getContentEditingDomain(),
+			clonedProjectSpace.getLocalChangePackage().getOperations(), clonedProjectSpace.getContentEditingDomain());
 
 		assertTrue(conflicts.size() > 0);
 
@@ -483,7 +493,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain());
 
 		assertTrue(conflicts.size() > 0);
 	}
@@ -508,7 +519,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain());
 
 		assertTrue(conflicts.size() > 0);
 	}
@@ -533,7 +545,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain());
 
 		assertTrue(conflicts.size() > 0);
 	}
@@ -558,7 +571,8 @@
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			clonedProjectSpace.getContentEditingDomain());
 
 		assertEquals(1, conflicts.size());
 	}
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiAttributeTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiAttributeTest.java
index dce37c4..3d8d929 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiAttributeTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiAttributeTest.java
@@ -54,7 +54,7 @@
 				testElement.getStrings().remove(0);
 				return testElement;
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation removeOp = new EMFStoreCommandWithResult<AbstractOperation>() {
 
@@ -63,14 +63,14 @@
 				final AbstractOperation removeOp = checkAndGetOperation(MultiAttributeOperation.class);
 				return removeOp;
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommandWithParameter<TestElement>() {
 			@Override
 			public void doRun(TestElement testElement) {
 				testElement.getStrings().add(1, INSERTED);
 			}
-		}.run(testElement, getProjectSpace().getContentEditingDomain(), false);
+		}.run(testElement, false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation addOp = new EMFStoreCommandWithResult<AbstractOperation>() {
 
@@ -79,7 +79,7 @@
 				final AbstractOperation addOp = checkAndGetOperation(MultiAttributeOperation.class);
 				return addOp;
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(true, doConflict(removeOp, addOp));
 		assertEquals(true, doConflict(addOp, removeOp));
@@ -99,7 +99,7 @@
 			protected void doRun() {
 				testElement.getStrings().add(0, INSERTED1);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation add1 = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -109,7 +109,7 @@
 			protected void doRun() {
 				testElement.getStrings().add(1, INSERTED2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation add2 = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -131,7 +131,7 @@
 			protected void doRun() {
 				testElement.getStrings().remove(2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation remove1 = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -140,7 +140,7 @@
 			protected void doRun() {
 				testElement.getStrings().remove(1);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation remove2 = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -171,7 +171,7 @@
 			protected void doRun() {
 				testElement.getStrings().move(1, 2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation move = myCheckAndGetOperation(MultiAttributeMoveOperation.class);
 
@@ -193,7 +193,7 @@
 			protected void doRun() {
 				testElement.getStrings().move(2, 0);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation move = myCheckAndGetOperation(MultiAttributeMoveOperation.class);
 
@@ -202,7 +202,7 @@
 			protected void doRun() {
 				testElement.getStrings().remove(0);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation add = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -249,7 +249,7 @@
 			protected void doRun() {
 				testElement.getStrings().move(0, 1);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation move1 = myCheckAndGetOperation(MultiAttributeMoveOperation.class);
 
@@ -259,7 +259,7 @@
 			protected void doRun() {
 				testElement.getStrings().move(2, 3);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation move2 = myCheckAndGetOperation(MultiAttributeMoveOperation.class);
 
@@ -280,7 +280,7 @@
 			protected void doRun() {
 				testElement.getStrings().set(0, SET);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiAttributeSetOperation.class);
 
@@ -289,7 +289,7 @@
 			protected void doRun() {
 				testElement.getStrings().add(1, ADDED);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation add = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -311,7 +311,7 @@
 			protected void doRun() {
 				testElement.getStrings().set(1, SET);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiAttributeSetOperation.class);
 
@@ -320,7 +320,7 @@
 			protected void doRun() {
 				testElement.getStrings().add(0, ADDED);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation add = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -339,7 +339,7 @@
 					testElement.getStrings().add(VALUE + i);
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		return testElement;
 	}
@@ -358,7 +358,7 @@
 			protected void doRun() {
 				testElement.getStrings().set(0, SET);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiAttributeSetOperation.class);
 
@@ -368,7 +368,7 @@
 			protected void doRun() {
 				testElement.getStrings().remove(1);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation remove = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -390,7 +390,7 @@
 			protected void doRun() {
 				testElement.getStrings().set(1, SET);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiAttributeSetOperation.class);
 
@@ -399,7 +399,7 @@
 			protected void doRun() {
 				testElement.getStrings().remove(0);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation remove = myCheckAndGetOperation(MultiAttributeOperation.class);
 
@@ -421,7 +421,7 @@
 			protected void doRun() {
 				testElement.getStrings().set(1, SET);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiAttributeSetOperation.class);
 
@@ -430,7 +430,7 @@
 			protected void doRun() {
 				testElement.getStrings().move(0, 2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation move = myCheckAndGetOperation(MultiAttributeMoveOperation.class);
 
@@ -452,7 +452,7 @@
 			protected void doRun() {
 				testElement.getStrings().set(1, SET);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiAttributeSetOperation.class);
 
@@ -461,7 +461,7 @@
 			protected void doRun() {
 				testElement.getStrings().move(2, 3);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation move = myCheckAndGetOperation(MultiAttributeMoveOperation.class);
 
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiReferenceTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiReferenceTest.java
index 58c1599..0c29625 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiReferenceTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionMultiReferenceTest.java
@@ -64,17 +64,29 @@
 			@Override
 			protected void doRun() {
 				section1.getContainedElements().add(actor1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// same operations going on in both working copies, no conflicts expected
 		assertEquals(1, conflicts.size());
@@ -99,7 +111,7 @@
 				getProject().addModelElement(actor);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace clonedProjectSpace = cloneProjectSpace(getProjectSpace());
 		final Project clonedProject = clonedProjectSpace.getProject();
@@ -117,17 +129,30 @@
 			@Override
 			protected void doRun() {
 				section1.getContainedElements().add(actor1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 		// same operations going on in both working copies, no conflicts expected
 		assertEquals(1, conflicts.size());
 
@@ -158,18 +183,30 @@
 			@Override
 			protected void doRun() {
 				section1.getContainedElements().add(actor1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().add(actor2);
 				section2.getContainedElements().add(dummy2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// obviously an index-integrity conflict
 		assertEquals(conflicts.size(), 1);
@@ -200,7 +237,7 @@
 				section1.getContainedElements().add(actor1);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -209,15 +246,20 @@
 				section2.getContainedElements().remove(actor2);
 
 			}
-		}.run(clonedProjectSpace.getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -248,18 +290,30 @@
 			@Override
 			protected void doRun() {
 				section1.getContainedElements().add(actor1);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().add(actor2);
 				actor2.setContainer(otherSection2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -290,18 +344,30 @@
 			@Override
 			protected void doRun() {
 				section1.getContainedElements().add(actor1);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().add(actor2);
 				otherSection2.getContainedElements().add(actor2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -335,9 +401,14 @@
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 	}
@@ -367,19 +438,32 @@
 			@Override
 			protected void doRun() {
 				actor1.setContainer(section1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				actor2.setContainer(section2);
 				otherSection2.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -409,7 +493,7 @@
 			protected void doRun() {
 				actor1.setContainer(section1);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		new EMFStoreCommand() {
 
 			@Override
@@ -417,14 +501,19 @@
 				actor2.setContainer(section2);
 				section2.getContainedElements().remove(actor2);
 			}
-		}.run(clonedProjectSpace.getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -455,19 +544,32 @@
 			@Override
 			protected void doRun() {
 				actor1.setContainer(section1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				actor2.setContainer(section2);
 				otherSection2.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -498,19 +600,32 @@
 			@Override
 			protected void doRun() {
 				section1.getContainedElements().add(actor1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().add(actor2);
 				otherSection2.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// hard conflict between add and remove, serialization matters
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -544,7 +659,7 @@
 			protected void doRun() {
 				section1.getContainedElements().remove(actor1);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -552,15 +667,20 @@
 				section2.getContainedElements().remove(actor2);
 
 			}
-		}.run(clonedProjectSpace.getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// no hard conflict
-		final Set<AbstractOperation> hardConflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> hardConflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(1, hardConflicts.size());
 
@@ -591,17 +711,28 @@
 			@Override
 			protected void doRun() {
 				actor.setContainer(section);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				otherSection2.getContainedElements().add(actor2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// no index conflict
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(conflicts.size(), 0);
 
@@ -637,18 +768,31 @@
 			@Override
 			protected void doRun() {
 				actor.setContainer(otherSection);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				actor2.setContainer(anotherSection2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// a hard conflict, though. serialization matters
-		final Set<AbstractOperation> hardConflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(), getConflicts(oclonedProjectSpace, ops1)
-			.size());
+		final Set<AbstractOperation> hardConflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
+				.size());
 
 		assertEquals(hardConflicts.size(), 1);
 
@@ -691,9 +835,13 @@
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// no index conflict
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 
 		// index conflict arises: if the add happens before the move, the move will work
@@ -728,18 +876,28 @@
 			@Override
 			protected void doRun() {
 				actor.setContainer(section);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().add(actor2);
 				section2.getContainedElements().move(0, actor2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// no index conflict
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 
 		// index conflict arises: if the add happens before the move, the move will work
@@ -777,17 +935,27 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().move(1, actor);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().move(0, actor2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
 		// no index conflict
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 
 		// an index conflict arises: result depends on which move comes last
@@ -824,16 +992,26 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().add(1, actor);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				dummy2.setContainer(otherSection2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		assertEquals(conflicts.size(), 0);
 	}
@@ -866,16 +1044,26 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().add(1, actor);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				dummy2.setContainer(otherSection2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict (the change happens at the boundary)
 		assertEquals(conflicts.size(), 0);
@@ -913,14 +1101,18 @@
 				section2.getContainedElements().remove(dummy2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict (outcome does not depend on serialization)
 		assertEquals(conflicts.size(), 0);
@@ -954,17 +1146,28 @@
 			@Override
 			protected void doRun() {
 				actor.setContainer(section);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				otherSection2.getContainedElements().add(dummy2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict (outcome does not depend on serialization)
 		assertEquals(conflicts.size(), 0);
@@ -999,14 +1202,18 @@
 				actor.setContainer(section);
 				dummy2.setContainer(otherSection2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict (outcome does not depend on serialization)
 		assertEquals(0, conflicts.size());
@@ -1045,14 +1252,18 @@
 				section2.getContainedElements().remove(dummy2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1088,17 +1299,28 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().remove(actor);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				otherSection2.getContainedElements().add(dummy2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1135,17 +1357,29 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().remove(actor);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				otherSection2.getContainedElements().add(dummy2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1183,16 +1417,26 @@
 			@Override
 			protected void doRun() {
 				actor.setContainer(anotherSection);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				otherSection2.getContainedElements().add(dummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1231,17 +1475,29 @@
 			@Override
 			protected void doRun() {
 				actor.setContainer(anotherSection);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				dummy2.setContainer(otherSection2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1279,16 +1535,26 @@
 			@Override
 			protected void doRun() {
 				anotherSection.getContainedElements().add(actor);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				otherSection2.getContainedElements().add(dummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1325,16 +1591,26 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().add(0, actor);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().move(1, anotherDummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1370,16 +1646,26 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().remove(actor);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().move(0, anotherDummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1416,16 +1702,26 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().remove(dummy);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().move(1, anotherDummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1464,16 +1760,26 @@
 			@Override
 			protected void doRun() {
 				dummy.setContainer(otherSection);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().move(1, anotherDummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1512,15 +1818,26 @@
 			@Override
 			protected void doRun() {
 				otherSection.getContainedElements().add(dummy);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().move(1, anotherDummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
+
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(conflicts.size(), 0);
@@ -1558,16 +1875,26 @@
 			@Override
 			protected void doRun() {
 				section.getContainedElements().move(2, actor);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				section2.getContainedElements().move(0, anotherDummy2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, clonedProjectSpace.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> oclonedProjectSpace = clonedProjectSpace.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, oclonedProjectSpace);
-		assertEquals(getConflicts(ops1, oclonedProjectSpace).size(),
-			getConflicts(oclonedProjectSpace, ops1)
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(),
+			oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), oclonedProjectSpace,
+				clonedProjectSpace.getContentEditingDomain()).size(),
+			getConflicts(oclonedProjectSpace, clonedProjectSpace.getContentEditingDomain(), ops1,
+				getProjectSpace().getContentEditingDomain())
 				.size());
 		// no index-integrity conflict: result independent of serialization
 		assertEquals(0, conflicts.size());
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionReferenceTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionReferenceTest.java
index 925361b..54f7180 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionReferenceTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionReferenceTest.java
@@ -59,7 +59,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -76,16 +76,27 @@
 			@Override
 			protected void doRun() {
 				actor1.setContainer((TestElement) getProject().getModelElement(section1Id));
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				actor2.setContainer((TestElement) project2.getModelElement(section2Id));
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 1);
 
@@ -112,7 +123,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -130,16 +141,27 @@
 			@Override
 			protected void doRun() {
 				actor1.setContainer((TestElement) getProject().getModelElement(section1Id));
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				actor2.setContainer((TestElement) project2.getModelElement(section2Id));
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -167,7 +189,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
@@ -184,15 +206,24 @@
 			@Override
 			protected void doRun() {
 				actor1.setContainer((TestElement) getProject().getModelElement(section1Id));
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				actor2.setReference((TestElement) project2.getModelElement(task2Id));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 0);
 
@@ -219,7 +250,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -236,15 +267,27 @@
 			@Override
 			protected void doRun() {
 				issue1.setContainedElement((TestElement) getProject().getModelElement(solution1Id));
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				solution22.setSrefContainer(issue2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
+
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -269,7 +312,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -285,15 +328,24 @@
 			@Override
 			protected void doRun() {
 				issue1.setContainedElement(solution1);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				solution2.setSrefContainer(issue2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -320,7 +372,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -338,15 +390,25 @@
 			@Override
 			protected void doRun() {
 				issue1.setReference(solution1);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				issue2.setContainedElement(section2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(0, conflicts.size());
 
@@ -380,16 +442,27 @@
 			@Override
 			protected void doRun() {
 				actor1.setContainer((TestElement) getProject().getModelElement(section1Id));
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section22.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -416,7 +489,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -434,16 +507,28 @@
 			protected void doRun() {
 
 				actor1.setContainer((TestElement) getProject().getModelElement(section1Id));
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
+
 				section12.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -470,7 +555,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -486,16 +571,27 @@
 			@Override
 			protected void doRun() {
 				actor1.setContainer((TestElement) getProject().getModelElement(section1Id));
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				actor2.getReferences().add((TestElement) project2.getModelElement(useCaseId));
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 0);
 
@@ -522,7 +618,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -540,16 +636,27 @@
 			@Override
 			protected void doRun() {
 				solution1inProject1.setContainedElement(issue1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				solution2inProject22.setContainedElement(issue2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -576,7 +683,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -593,16 +700,27 @@
 			@Override
 			protected void doRun() {
 				solution1inProject1.setContainedElement(issue1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				solution2inProject2.setContainedElement(issue2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -631,7 +749,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -649,15 +767,24 @@
 			@Override
 			protected void doRun() {
 				solution1inProject1.setContainedElement(issue11);
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+			@Override
+			protected void doRun() {
 				solution2inProject2.setContainedElement(issue22);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(0, conflicts.size());
 
@@ -684,7 +811,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -702,16 +829,27 @@
 			@Override
 			protected void doRun() {
 				section11.getContainedElements().add(actor1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section22.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -738,7 +876,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -755,16 +893,27 @@
 			@Override
 			protected void doRun() {
 				section1inProject1.getContainedElements().add(actor1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				section1inProject2.getContainedElements().add(actor2);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(1, conflicts.size());
 
@@ -791,7 +940,7 @@
 				clearOperations();
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		final ProjectSpace ps2 = cloneProjectSpace(getProjectSpace());
 		final Project project2 = ps2.getProject();
 
@@ -809,16 +958,27 @@
 			@Override
 			protected void doRun() {
 				section1.getContainedElements().add(actor1);
+
+			}
+		}.run(false, getProjectSpace().getContentEditingDomain());
+
+		new EMFStoreCommand() {
+
+			@Override
+			protected void doRun() {
 				actor2.getReferences().add((TestElement) project2.getModelElement(useCaseId));
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, ps2.getContentEditingDomain());
 
 		final List<AbstractOperation> ops1 = getProjectSpace().getOperations();
 		final List<AbstractOperation> ops2 = ps2.getOperations();
 
-		final Set<AbstractOperation> conflicts = getConflicts(ops1, ops2);
-		assertEquals(getConflicts(ops1, ops2).size(), getConflicts(ops2, ops1).size());
+		final Set<AbstractOperation> conflicts = getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2,
+			ps2.getContentEditingDomain());
+		assertEquals(
+			getConflicts(ops1, getProjectSpace().getContentEditingDomain(), ops2, ps2.getContentEditingDomain()).size(),
+			getConflicts(ops2, ps2.getContentEditingDomain(), ops1, getProjectSpace().getContentEditingDomain()).size());
 
 		assertEquals(conflicts.size(), 0);
 	}
@@ -842,7 +1002,7 @@
 				clearOperations();
 				testElement.getReferences().set(1, inserted);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiReferenceSetOperation.class);
 
@@ -851,7 +1011,7 @@
 			protected void doRun() {
 				testElement.getReferences().add(added);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation add = myCheckAndGetOperation(MultiReferenceOperation.class);
 
@@ -886,7 +1046,7 @@
 				clearOperations();
 				testElement.getReferences().remove(first);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation remove = myCheckAndGetOperation(MultiReferenceOperation.class);
 
@@ -895,7 +1055,7 @@
 			protected void doRun() {
 				testElement.getReferences().set(testElement.getReferences().indexOf(second), inserted);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiReferenceSetOperation.class);
 
@@ -920,7 +1080,7 @@
 				clearOperations();
 				testElement.getReferences().remove(second);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation remove = myCheckAndGetOperation(MultiReferenceOperation.class);
 
@@ -931,7 +1091,7 @@
 				clearOperations();
 				testElement.getReferences().set(testElement.getReferences().indexOf(second), inserted);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final AbstractOperation set = myCheckAndGetOperation(MultiReferenceSetOperation.class);
 
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionTest.java b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionTest.java
index 4faf763..87745ee 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/src/org/eclipse/emf/emfstore/client/conflictdetection/test/ConflictDetectionTest.java
@@ -16,6 +16,7 @@
 import java.util.List;
 import java.util.Set;
 
+import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.emfstore.client.test.common.cases.ESTest;
 import org.eclipse.emf.emfstore.client.util.ESVoidCallable;
 import org.eclipse.emf.emfstore.client.util.RunESCommand;
@@ -56,7 +57,8 @@
 		return conflictSet.getConflictBuckets().size() > 0;
 	}
 
-	public Set<AbstractOperation> getConflicts(final List<AbstractOperation> ops1, final List<AbstractOperation> ops2,
+	public Set<AbstractOperation> getConflicts(final List<AbstractOperation> ops1, EditingDomain domain1,
+		final List<AbstractOperation> ops2, EditingDomain domain2,
 		Project project) {
 
 		final ChangePackage changePackage1 = VersioningFactory.eINSTANCE.createChangePackage();
@@ -66,9 +68,15 @@
 			@Override
 			public void run() {
 				changePackage1.getOperations().addAll(ops1);
+			}
+		}, domain1);
+
+		RunESCommand.run(new ESVoidCallable() {
+			@Override
+			public void run() {
 				changePackage2.getOperations().addAll(ops2);
 			}
-		}, getProjectSpace().getContentEditingDomain());
+		}, domain2);
 
 		final ChangeConflictSet conflicts = new ConflictDetector().calculateConflicts(Arrays.asList(changePackage1),
 			Arrays.asList(changePackage2), project);
@@ -80,8 +88,9 @@
 		return result;
 	}
 
-	public Set<AbstractOperation> getConflicts(List<AbstractOperation> ops1, List<AbstractOperation> ops2) {
-		return getConflicts(ops1, ops2, ModelFactory.eINSTANCE.createProject());
+	public Set<AbstractOperation> getConflicts(List<AbstractOperation> ops1, EditingDomain domain1,
+		List<AbstractOperation> ops2, EditingDomain domain2) {
+		return getConflicts(ops1, domain1, ops2, domain2, ModelFactory.eINSTANCE.createProject());
 	}
 
 	public <T extends AbstractOperation> AbstractOperation myCheckAndGetOperation(
@@ -91,7 +100,7 @@
 			protected AbstractOperation doRun() {
 				return checkAndGetOperation(clazz);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 }
diff --git a/tests/org.eclipse.emf.emfstore.client.example.test/TransactionalAPIUsedInExampleTest.launch b/tests/org.eclipse.emf.emfstore.client.example.test/TransactionalAPIUsedInExampleTest.launch
new file mode 100644
index 0000000..e29e565
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.example.test/TransactionalAPIUsedInExampleTest.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.emfstore.branding,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.test.alltests,org.eclipse.emf.emfstore.client.test.ui,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.historybrowsercomparator,org.eclipse.emf.emfstore.ecore,org.eclipse.emf.emfstore.example.installer,org.eclipse.emf.emfstore.example.sessionprovider,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.fuzzy,org.eclipse.emf.emfstore.fuzzy.emf,org.eclipse.emf.emfstore.fuzzy.emf.edit,org.eclipse.emf.emfstore.fuzzy.emf.editor,org.eclipse.emf.emfstore.fuzzy.emf.example,org.eclipse.emf.emfstore.fuzzy.emf.test,org.eclipse.emf.emfstore.mongodb,org.eclipse.emf.emfstore.mongodb.client,org.eclipse.emf.emfstore.mongodb.server"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.emfstore.client.example.test/src/org/eclipse/emf/emfstore/client/example/test/APIUsedInExampleTest.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.emfstore.client.example.test.APIUsedInExampleTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.emfstore.client.example.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.emf.cdo.server.product.tcp_h2"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.example.test@default:default,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.transaction@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.example.helloworld@default:default,org.eclipse.emf.emfstore.example.merging@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/TransactionalAllRecordingTests.launch b/tests/org.eclipse.emf.emfstore.client.recording.test/TransactionalAllRecordingTests.launch
new file mode 100644
index 0000000..57db8ba
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/TransactionalAllRecordingTests.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.emfstore.branding,org.eclipse.emf.emfstore.client.example.test,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.test.alltests,org.eclipse.emf.emfstore.client.test.ui,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.historybrowsercomparator,org.eclipse.emf.emfstore.common.model.edit,org.eclipse.emf.emfstore.ecore,org.eclipse.emf.emfstore.example.helloworld,org.eclipse.emf.emfstore.example.installer,org.eclipse.emf.emfstore.example.merging,org.eclipse.emf.emfstore.example.sessionprovider,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.fuzzy,org.eclipse.emf.emfstore.fuzzy.emf,org.eclipse.emf.emfstore.fuzzy.emf.edit,org.eclipse.emf.emfstore.fuzzy.emf.editor,org.eclipse.emf.emfstore.fuzzy.emf.example,org.eclipse.emf.emfstore.fuzzy.emf.test,org.eclipse.emf.emfstore.mongodb,org.eclipse.emf.emfstore.mongodb.client,org.eclipse.emf.emfstore.mongodb.server,org.eclipse.emf.emfstore.server.model.edit"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/AllRecordingTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.emfstore.client.recording.test.AllRecordingTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.emfstore.client.recording.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.emf.cdo.server.product.tcp_h2"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.transaction@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/AttributeOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/AttributeOperationTest.java
index 17e85bf..e0c7fa4 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/AttributeOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/AttributeOperationTest.java
@@ -156,7 +156,7 @@
 				testElement.setName(NEW_NAME);

 				assertEquals(NEW_NAME, testElement.getName());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -187,7 +187,7 @@
 				final ModelElementId testElementId = ModelUtil.getProject(testElement).getModelElementId(testElement);

 				assertEquals(testElementId, reversedAttributeOperation.getModelElementId());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(OLD_NAME, testElement.getName());

 	}

@@ -209,7 +209,7 @@
 				testElement.setName(NEW_NAME);

 				assertEquals(NEW_NAME, testElement.getName());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -240,7 +240,7 @@
 				r.apply(getProject());

 				rr.apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));

 

@@ -251,7 +251,7 @@
 				attributeOperation.reverse().apply(getProject());

 				attributeOperation.reverse().reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));

 		getProjectSpace().save();

@@ -277,7 +277,7 @@
 				fan.setName(FAN);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final Project secondProject = ModelUtil.clone(getProject());

 

@@ -290,7 +290,7 @@
 			protected void doRun() {

 				fan.unsetName();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(false, fan.isSetName());

 		assertEquals(null, fan.getName());

@@ -318,7 +318,7 @@
 			protected void doRun() {

 				fan.setName(null);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(true, fan.isSetName());

 		assertEquals(null, fan.getName());

@@ -347,7 +347,7 @@
 				fan.setName(FAN);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(FAN, fan.getName());

 		assertEquals(true, fan.isSetName());

@@ -359,7 +359,7 @@
 			protected void doRun() {

 				fan.unsetName();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(false, fan.isSetName());

 		assertEquals(null, fan.getName());

@@ -381,7 +381,7 @@
 			protected void doRun() {

 				attributeOperation.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(FAN, fan.getName());

 		assertEquals(true, fan.isSetName());

@@ -400,7 +400,7 @@
 				fan.setName(FAN);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(FAN, fan.getName());

 		assertEquals(true, fan.isSetName());

@@ -410,7 +410,7 @@
 			protected void doRun() {

 				fan.unsetName();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final Project secondProject = ModelUtil.clone(getProject());

 

@@ -434,7 +434,7 @@
 			protected void doRun() {

 				attributeOperation.reverse().reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(null, fan.getName());

 		assertEquals(false, fan.isSetName());

@@ -452,7 +452,7 @@
 				getProject().addModelElement(fan);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(null, fan.getName());

 		assertEquals(false, fan.isSetName());

@@ -464,7 +464,7 @@
 			protected void doRun() {

 				fan.setName(FAN);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(true, fan.isSetName());

 		assertEquals(FAN, fan.getName());

@@ -485,7 +485,7 @@
 			protected void doRun() {

 				attributeOperation.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(null, fan.getName());

 		assertEquals(false, fan.isSetName());

diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CompositeOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CompositeOperationTest.java
index bfbbb79..45dd162 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CompositeOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CompositeOperationTest.java
@@ -71,7 +71,7 @@
 
 				return section;
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -106,7 +106,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(true, getProject().contains(useCase));
 		assertEquals(getProject(), ModelUtil.getProject(useCase));
@@ -146,7 +146,7 @@
 
 				return handle;
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ModelElementId sectionId = ModelUtil.getProject(section).getModelElementId(section);
 		final ProjectSpace projectSpace = getProjectSpace();
@@ -162,7 +162,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(true, getProject().contains(useCase));
 		assertEquals(getProject(), ModelUtil.getProject(useCase));
@@ -210,7 +210,7 @@
 
 				return handle;
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final ModelElementId sectionId = ModelUtil.getProject(section).getModelElementId(section);
 		final ProjectSpace projectSpace = getProjectSpace();
@@ -226,7 +226,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(true, getProject().contains(useCase));
 		assertEquals(getProject(), ModelUtil.getProject(useCase));
@@ -278,7 +278,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(true, getProject().contains(section));
 		assertEquals(NAME, section.getName());
@@ -327,7 +327,7 @@
 				assertEquals(workPackage, actionItem.getContainer());
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -350,7 +350,7 @@
 					fail();
 				}
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -366,7 +366,7 @@
 				getProject().addModelElement(Create.testElement());
 				getProject().addModelElement(Create.testElement());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -374,7 +374,7 @@
 				getProject().addModelElement(Create.testElement());
 				getProject().addModelElement(Create.testElement());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		RunESCommand.run(new Callable<Void>() {
 			public Void call() throws Exception {
@@ -393,7 +393,7 @@
 				getProject().addModelElement(Create.testElement());
 				getProject().addModelElement(Create.testElement());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -401,7 +401,7 @@
 				getProject().addModelElement(Create.testElement());
 				getProject().addModelElement(Create.testElement());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		RunESCommand.run(new Callable<Void>() {
 			public Void call() throws Exception {
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CreateDeleteOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CreateDeleteOperationTest.java
index 7387847..105ec3b 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CreateDeleteOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/CreateDeleteOperationTest.java
@@ -116,7 +116,7 @@
 			protected void doRun() {

 				getProject().addModelElement(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -159,7 +159,7 @@
 			protected void doRun() {

 				getProject().addModelElement(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		ESWorkspaceProviderImpl.getObserverBus().unregister(observer);

 

@@ -193,7 +193,7 @@
 			protected void doRun() {

 				getProject().addModelElement(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(useCase));

 		assertEquals(getProject(), ModelUtil.getProject(useCase));

@@ -206,7 +206,7 @@
 				clearOperations();

 				useCase.getNonContained_NToM().add(functionalRequirement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(functionalRequirement, useCase.getNonContained_NToM().get(0));

 		assertEquals(useCase, functionalRequirement.getNonContained_MToN().get(0));

@@ -257,7 +257,7 @@
 				getProject().addModelElement(useCase);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId useCaseId = ModelUtil.getProject(useCase).getModelElementId(useCase);

 

@@ -266,7 +266,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getLocalChangePackage().getOperations();

 

@@ -313,7 +313,7 @@
 				assertEquals(getProject(), ModelUtil.getProject(useCase));

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId useCaseId = getProject().getModelElementId(useCase);

 		Delete.fromProject(getLocalProject(), useCase);

@@ -557,7 +557,7 @@
 

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId useCaseId = getProject().getModelElementId(useCase);

 

@@ -566,7 +566,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(getProject().contains(useCase));

 		assertEquals(0, oldTestElement.getNonContained_1ToN().size());

@@ -701,7 +701,7 @@
 			protected void doRun() {

 				reverse.apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(useCaseId));

 		assertTrue(getProject().contains(oldTestElement));

@@ -754,7 +754,7 @@
 						createLeafSection.getContainedElements().add(createActionItem);

 					}

 				}

-			}.run(getProjectSpace().getContentEditingDomain(), false);

+			}.run(false, getProjectSpace().getContentEditingDomain());

 		}

 		assertEquals(230, getProjectSpace().getOperations().size());

 

@@ -789,7 +789,7 @@
 

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId solutionId = ModelUtil.getProject(solution).getModelElementId(solution);

 

@@ -798,7 +798,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(solution);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(issue));

 		assertFalse(getProject().contains(solution));

@@ -849,7 +849,7 @@
 				useCase.getReferences().add(useCase2);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		new EMFStoreCommand() {

 			@Override

@@ -865,7 +865,7 @@
 				assertEquals(2, operation.getSubOperations().size());

 				assertTrue(operation.getSubOperations().get(0) instanceof MultiReferenceOperation);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 	}

 

@@ -890,7 +890,7 @@
 

 				section.getContainedElements().add(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(useCase));

 		assertTrue(getProject().contains(section));

@@ -953,7 +953,7 @@
 			protected void doRun() {

 				getProject().addModelElement(clazz);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		getProjectSpace().save();

 

@@ -990,7 +990,7 @@
 			protected void doRun() {

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		// delete one ModelElement

 		new EMFStoreCommand() {

@@ -998,7 +998,7 @@
 			protected void doRun() {

 				EcoreUtil.delete(attribute);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 		assertEquals(1, operations.size()); // one delete operation

@@ -1053,7 +1053,7 @@
 			protected void doRun() {

 				getProject().addModelElement(meeting);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 		assertEquals(1, operations.size());

@@ -1082,7 +1082,7 @@
 			protected void doRun() {

 				getProject().addModelElement(compMeetingSection);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId compMeetingSectionId = getProject().getModelElementId(compMeetingSection);

 

@@ -1107,7 +1107,7 @@
 				testElement.getReferences().add(testElement2);

 				parentTestElement.getContainedElements().add(testElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(parentTestElement));

 		assertEquals(getProject(), ModelUtil.getProject(parentTestElement));

@@ -1121,7 +1121,7 @@
 			protected void doRun() {

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		new EMFStoreCommand() {

 

@@ -1129,7 +1129,7 @@
 			protected void doRun() {

 				parentTestElement.getContainedElements().add(testElement2);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(parentTestElement));

 		assertEquals(getProject(), ModelUtil.getProject(parentTestElement));

@@ -1194,7 +1194,7 @@
 				newChildElement2.getReferences().add(testElement);

 				testElement.getReferences().add(newChildElement3);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(parentTestElement));

 		assertEquals(getProject(), ModelUtil.getProject(parentTestElement));

@@ -1219,14 +1219,14 @@
 			protected void doRun() {

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		new EMFStoreCommand() {

 			@Override

 			protected void doRun() {

 				parentTestElement.getContainedElements().add(newTestElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(parentTestElement));

 		assertEquals(getProject(), ModelUtil.getProject(parentTestElement));

@@ -1306,7 +1306,7 @@
 				testElement.getContainedElements_NoOpposite().add(subTestElement);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId parentElementId = getProject().getModelElementId(parentTestElement);

 		final ModelElementId elementId = getProject().getModelElementId(testElement);

@@ -1338,7 +1338,7 @@
 				testElement.getContainedElements_NoOpposite().clear();

 				parentTestElement.getContainedElements_NoOpposite().clear();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 		assertEquals(4, operations.size());

@@ -1349,7 +1349,7 @@
 			protected void doRun() {

 				getProjectSpace().revert();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(1, getProject().getModelElements().size());

 		assertEquals(parentTestElement, getProject().getModelElements().get(0));

@@ -1386,7 +1386,7 @@
 				testElement.getContainedElements().add(subTestElement);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId parentElementId = getProject().getModelElementId(parentTestElement);

 		final ModelElementId elementId = getProject().getModelElementId(testElement);

@@ -1418,7 +1418,7 @@
 				parentTestElement.getContainedElements().clear();

 				testElement.getContainedElements().clear();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		new EMFStoreCommand() {

 

@@ -1426,7 +1426,7 @@
 			protected void doRun() {

 				getProjectSpace().revert();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(1, getProject().getModelElements().size());

 		assertEquals(parentTestElement, getProject().getModelElements().get(0));

@@ -1458,7 +1458,7 @@
 			protected void doRun() {

 				getProject().addModelElement(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 		assertEquals(1, operations.size());

@@ -1475,7 +1475,7 @@
 			protected void doRun() {

 				createDeleteOperation.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertNull(useCase.eContainer());

 		assertNull(((IdEObjectCollectionImpl) getProject()).getDeletedModelElement(useCaseId));

@@ -1505,7 +1505,7 @@
 				assertEquals(getProject(), ModelUtil.getProject(useCase));

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final ModelElementId useCaseId = ModelUtil.getProject(useCase).getModelElementId(useCase);

 		assertNotNull(useCaseId);

@@ -1515,7 +1515,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -1531,7 +1531,7 @@
 			protected void doRun() {

 				createDeleteOperation.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final EObject modelElement = getProject().getModelElement(useCaseId);

 		final ModelElementId modelElementId = getProject().getModelElementId(modelElement);

@@ -1561,7 +1561,7 @@
 				testElement.getElementMap().put(keyRefeferenceTestElement, referenceTestElement);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(testElement));

 		assertTrue(getProject().contains(secondTestElement));

@@ -1574,7 +1574,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(secondTestElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(testElement));

 		assertFalse(getProject().contains(secondTestElement));

@@ -1587,7 +1587,7 @@
 				// delete value reference

 				getProject().deleteModelElement(referenceTestElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertNull(testElement.getElementMap().get(referenceTestElement));

 		assertTrue(testElement.getElementMap().containsKey(keyRefeferenceTestElement));

@@ -1598,7 +1598,7 @@
 				// delete key reference

 				getProject().deleteModelElement(keyRefeferenceTestElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(testElement.getElementMap().containsKey(keyRefeferenceTestElement));

 

@@ -1607,7 +1607,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(testElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(getProject().contains(testElement));

 		assertTrue(getProject().contains(parentTestElement));

@@ -1634,7 +1634,7 @@
 				testElement.getStringToElementMap().put(REFERENCED_TEST_ELEMENT, referenceTestElement);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(testElement));

 		assertTrue(getProject().contains(secondTestElement));

@@ -1646,7 +1646,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(secondTestElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(testElement));

 		assertFalse(getProject().contains(secondTestElement));

@@ -1660,7 +1660,7 @@
 				// delete value reference

 				getProject().deleteModelElement(referenceTestElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertNull(testElement.getStringToElementMap().get(REFERENCED_TEST_ELEMENT));

 		assertTrue(testElement.getStringToElementMap().containsKey(REFERENCED_TEST_ELEMENT));

@@ -1670,7 +1670,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(testElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(getProject().contains(testElement));

 		assertTrue(getProject().contains(parentTestElement));

@@ -1696,7 +1696,7 @@
 				testElement.getElementToStringMap().put(referenceKeyTestElement, REFERENCED_TEST_ELEMENT);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(testElement));

 		assertTrue(getProject().contains(secondTestElement));

@@ -1710,7 +1710,7 @@
 				getProject().deleteModelElement(secondTestElement);

 				getProject().deleteModelElement(referenceKeyTestElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(getProject().contains(referenceKeyTestElement));

 		assertFalse(getProject().contains(secondTestElement));

@@ -1731,7 +1731,7 @@
 				testElement.getStringToStringMap().put(HELLO, HALLO);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(getProject().contains(testElement));

 		assertEquals(testElement.getStringToStringMap().get(DAY), TAG);

@@ -1742,7 +1742,7 @@
 			protected void doRun() {

 				getProject().deleteModelElement(testElement);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 		assertFalse(getProject().contains(testElement));

 	}

 

diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeMoveOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeMoveOperationTest.java
index bc725cc..91e93c6 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeMoveOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeMoveOperationTest.java
@@ -65,7 +65,7 @@
 				assertTrue(testElement.getStrings().get(1).equals(FIRST));
 				assertTrue(testElement.getStrings().get(2).equals(SECOND));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -101,7 +101,7 @@
 				getProject().addModelElement(testElementc13);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -111,7 +111,7 @@
 				testElement13.getReferences().add(testElementc11);
 				testElement1.getContainedElements().addAll(list);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(true, getProject().contains(testElement1));
 		assertEquals(true, getProject().contains(testElement11));
@@ -152,7 +152,7 @@
 			protected void doRun() {
 				getProject().addModelElement(testElement1);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -237,7 +237,7 @@
 						.get(operation.getModelElement().eContents().get(1).eContents().get(1)));
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 	}
 
@@ -262,7 +262,7 @@
 				assertTrue(testElement.getStrings().get(1).equals(FIRST));
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(1, getProjectSpace().getOperations().size());
 		final AbstractOperation tmp = getProjectSpace().getOperations().get(0);
@@ -298,7 +298,7 @@
 				assertTrue(testElement.getStrings().get(0).equals(SECOND));
 				assertTrue(testElement.getStrings().get(1).equals(FIRST));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -309,6 +309,6 @@
 				assertTrue(testElement.getStrings().get(0).equals(FIRST));
 				assertTrue(testElement.getStrings().get(1).equals(SECOND));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 }
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeSetTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeSetTest.java
index 2e8829e..6736b2d 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeSetTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeSetTest.java
@@ -68,7 +68,7 @@
 				element.getStrings().add(OLD_VALUE);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(element.getStrings().size() == 1);
 
@@ -77,7 +77,7 @@
 			protected void doRun() {
 				element.getStrings().set(0, SETTED_VALUE);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(element.getStrings().size() == 1);
 		assertTrue(element.getStrings().get(0).equals(SETTED_VALUE));
@@ -113,7 +113,7 @@
 				assertEquals(1, testElement.getStrings().size());
 				assertTrue(testElement.getStrings().get(0).equals(INSERTED));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -142,7 +142,7 @@
 				assertTrue(testElement.getStrings().size() == 1);
 				assertTrue(testElement.getStrings().get(0).equals(OLD_VALUE));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -174,7 +174,7 @@
 				assertTrue(testElement.getStrings().get(1).equals(INSERTED));
 				assertTrue(testElement.getStrings().get(2).equals(THIRD));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -190,7 +190,7 @@
 				element.getStrings().add(OLD_VALUE);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(element.getStrings().size() == 1);
 		assertTrue(element.getStrings().get(0).equals(OLD_VALUE));
@@ -202,7 +202,7 @@
 				assertTrue(element.getStrings().size() == 1);
 				assertTrue(element.getStrings().get(0).equals(NEW_VALUE));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -210,7 +210,7 @@
 				final AbstractOperation operation = getProjectSpace().getOperations().get(0).reverse();
 				operation.apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(element.getStrings().size() == 1);
 		assertTrue(element.getStrings().get(0).equals(OLD_VALUE));
@@ -230,7 +230,7 @@
 				assertEquals(3, fan.getEMails().size());
 				assertTrue(fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		clearOperations();
 		final Project secondProject = ModelUtil.clone(getProject());
@@ -242,7 +242,7 @@
 				assertEquals(0, fan.getEMails().size());
 				assertTrue(!fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -265,7 +265,7 @@
 				multAttOp.apply(secondProject);
 				multAttSetOp.apply(secondProject);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		assertEquals(0, ((Fan) secondProject.getModelElements().get(0)).getEMails().size());
 		assertTrue(!((Fan) secondProject.getModelElements().get(0)).isSetEMails());
 		assertTrue(ModelUtil.areEqual(getProject(), secondProject));
@@ -286,7 +286,7 @@
 				assertEquals(3, fan.getEMails().size());
 				assertTrue(fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		clearOperations();
 		final Project secondProject = ModelUtil.clone(getProject());
@@ -298,7 +298,7 @@
 				assertEquals(0, fan.getEMails().size());
 				assertTrue(!fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -322,7 +322,7 @@
 				multAttOp.reverse().apply(getProject());
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(3, fan.getEMails().size());
 		assertTrue(fan.isSetEMails());
@@ -343,7 +343,7 @@
 				assertEquals(3, fan.getEMails().size());
 				assertTrue(fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		clearOperations();
 
@@ -354,7 +354,7 @@
 				assertEquals(0, fan.getEMails().size());
 				assertTrue(!fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final Project secondProject = ModelUtil.clone(getProject());
 
@@ -379,7 +379,7 @@
 				multAttOp.reverse().reverse().apply(getProject());
 				multAttSetOp.reverse().reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, fan.getEMails().size());
 		assertTrue(!fan.isSetEMails());
@@ -397,7 +397,7 @@
 				assertEquals(0, fan.getEMails().size());
 				assertTrue(!fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		clearOperations();
 		final Project secondProject = ModelUtil.clone(getProject());
@@ -411,7 +411,7 @@
 				assertEquals(3, fan.getEMails().size());
 				assertTrue(fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -436,7 +436,7 @@
 				multAttOp2.reverse().apply(getProject());
 				multAttOp1.reverse().apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(0, fan.getEMails().size());
 		assertTrue(!fan.isSetEMails());
@@ -454,7 +454,7 @@
 				assertEquals(0, fan.getEMails().size());
 				assertTrue(!fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		clearOperations();
 		final Project secondProject = ModelUtil.clone(getProject());
@@ -466,7 +466,7 @@
 				assertEquals(0, fan.getEMails().size());
 				assertTrue(fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		final List<AbstractOperation> operations = getProjectSpace().getOperations();
 
@@ -482,7 +482,7 @@
 				assertEquals(0, fan.getEMails().size());
 				assertTrue(fan.isSetEMails());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(ModelUtil.areEqual(getProject(), secondProject));
 	}
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeTest.java
index 3c45c61..a5ffb5c 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiAttributeTest.java
@@ -66,7 +66,7 @@
 				assertTrue(testElement.getStrings().size() == 1);
 				assertTrue(testElement.getStrings().get(0).equals(INSERTED));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -96,7 +96,7 @@
 				assertTrue(testElement.getStrings().get(0).equals(INSERTED));
 				assertTrue(testElement.getStrings().get(1).equals(FIRST));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -129,7 +129,7 @@
 				assertTrue(testElement.getStrings().get(1).equals(FIRST));
 				assertTrue(testElement.getStrings().get(2).equals(INSERTED2));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -157,7 +157,7 @@
 
 				assertTrue(testElement.getStrings().size() == 0);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -175,7 +175,7 @@
 				testElement.getStrings().add(FIRST);
 				testElement.getStrings().addAll(Arrays.asList(SECOND, THIRD));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		AbstractOperation abstractOperation = getProjectSpace().getOperations().get(0);
 		assertTrue(abstractOperation instanceof MultiAttributeOperation);
@@ -213,7 +213,7 @@
 				clearOperations();
 				testElement.getStrings().removeAll(Arrays.asList(SECOND, THIRD));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(getProjectSpace().getOperations().size() == 1);
 		final AbstractOperation abstractOperation = getProjectSpace().getOperations().get(0);
@@ -244,7 +244,7 @@
 				assertTrue(testElement.getStrings().get(1).equals(SECOND));
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -253,7 +253,7 @@
 				assertTrue(testElement.getStrings().size() == 1);
 				assertTrue(testElement.getStrings().get(0).equals(FIRST));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -261,7 +261,7 @@
 				final AbstractOperation ao = getProjectSpace().getOperations().get(0).reverse();
 				ao.apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(testElement.getStrings().size() == 2);
 		assertTrue(testElement.getStrings().get(0).equals(FIRST));
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceMoveOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceMoveOperationTest.java
index 4e9c3f1..3a06339 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceMoveOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceMoveOperationTest.java
@@ -69,7 +69,7 @@
 				actor.getNonContained_1ToN().add(useCase2);

 				actor.getNonContained_1ToN().add(useCase3);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(actor, useCase1.getNonContained_NTo1());

 		assertEquals(actor, useCase2.getNonContained_NTo1());

@@ -87,7 +87,7 @@
 				clearOperations();

 				actor.getNonContained_1ToN().move(2, 1);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -145,7 +145,7 @@
 				actor.getNonContained_1ToN().add(useCase3);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		new EMFStoreCommand() {

 			@Override

@@ -162,7 +162,7 @@
 

 				actor.getNonContained_1ToN().move(2, 1);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -188,7 +188,7 @@
 			protected void doRun() {

 				reverse.apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final EList<TestElement> initiatedTestElements = actor.getNonContained_1ToN();

 		assertEquals(actor, useCase1.getNonContained_NTo1());

@@ -223,7 +223,7 @@
 				actor.getNonContained_1ToN().add(useCase2);

 				actor.getNonContained_1ToN().add(useCase3);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(actor, useCase1.getNonContained_NTo1());

 		assertEquals(actor, useCase2.getNonContained_NTo1());

diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceOperationTest.java
index 547e37c..28e3c19 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceOperationTest.java
@@ -75,7 +75,7 @@
 				clearOperations();

 				actor.getNonContained_1ToN().add(useCase);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 		assertEquals(actor, useCase.getNonContained_NTo1());

 		final EList<TestElement> initiatedTestElements = actor.getNonContained_1ToN();

 		assertEquals(1, initiatedTestElements.size());

@@ -155,7 +155,7 @@
 				assertEquals(1, initiatedTestElements.size());

 				assertEquals(useCase, initiatedTestElements.get(0));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -203,7 +203,7 @@
 			protected void doRun() {

 				reversedMultiReferenceOperation.apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(0, actor.getNonContained_1ToN().size());

 		assertNull(useCase.getNonContained_NTo1());

@@ -250,7 +250,7 @@
 				assertEquals(useCase2, initiatedTestElements.get(1));

 				assertEquals(useCase3, initiatedTestElements.get(2));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -345,7 +345,7 @@
 				assertEquals(useCase2, initiatedTestElements.get(1));

 				assertEquals(useCase3, initiatedTestElements.get(2));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		Delete.fromNonContained1ToN(getLocalProject(), actor, useCases);

 

@@ -425,7 +425,7 @@
 				assertEquals(3, fan.getVisitedTournaments().size());

 				assertTrue(fan.isSetVisitedTournaments());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -440,7 +440,7 @@
 				assertTrue(getProject().getAllModelElements().contains(tournament2));

 				assertTrue(getProject().getAllModelElements().contains(tournament3));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -464,7 +464,7 @@
 				operations.get(0).apply(secondProject);

 				operations.get(1).apply(secondProject);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(0, ((Fan) secondProject.getModelElements().get(0)).getVisitedTournaments().size());

 		assertTrue(!((Fan) secondProject.getModelElements().get(0)).isSetVisitedTournaments());

@@ -491,7 +491,7 @@
 				assertEquals(3, fan.getVisitedTournaments().size());

 				assertTrue(fan.isSetVisitedTournaments());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -506,7 +506,7 @@
 				assertTrue(getProject().getAllModelElements().contains(tournament2));

 				assertTrue(getProject().getAllModelElements().contains(tournament3));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -530,7 +530,7 @@
 				mrop2.reverse().apply(getProject());

 				mrop1.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(3, fan.getVisitedTournaments().size());

 		assertTrue(fan.getVisitedTournaments().contains(tournament1));

@@ -560,7 +560,7 @@
 				assertEquals(3, fan.getVisitedTournaments().size());

 				assertTrue(fan.isSetVisitedTournaments());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 

@@ -574,7 +574,7 @@
 				assertTrue(getProject().getAllModelElements().contains(tournament2));

 				assertTrue(getProject().getAllModelElements().contains(tournament3));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final Project secondProject = ModelUtil.clone(getProject());

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

@@ -599,7 +599,7 @@
 				mrop1.reverse().reverse().apply(getProject());

 				mrop2.reverse().reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(0, fan.getVisitedTournaments().size());

 		assertTrue(!fan.isSetVisitedTournaments());

@@ -629,7 +629,7 @@
 				assertTrue(getProject().getAllModelElements().contains(tournament2));

 				assertTrue(getProject().getAllModelElements().contains(tournament3));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -643,7 +643,7 @@
 				assertEquals(3, fan.getVisitedTournaments().size());

 				assertTrue(fan.isSetVisitedTournaments());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -673,7 +673,7 @@
 				mrop2.reverse().apply(getProject());

 				mrop1.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(0, fan.getVisitedTournaments().size());

 		assertTrue(!fan.isSetVisitedTournaments());

@@ -700,7 +700,7 @@
 				assertEquals(3, fan.getFanMerchandise().size());

 				assertTrue(fan.isSetFanMerchandise());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -715,7 +715,7 @@
 				assertTrue(!getProject().getAllModelElements().contains(merch2));

 				assertTrue(!getProject().getAllModelElements().contains(merch3));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -754,7 +754,7 @@
 				creaDelOp2.apply(secondProject);

 				creaDelOp3.apply(secondProject);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(0, ((Fan) secondProject.getModelElements().get(0)).getFanMerchandise().size());

 		assertTrue(!((Fan) secondProject.getModelElements().get(0)).isSetFanMerchandise());

@@ -781,7 +781,7 @@
 				assertEquals(3, fan.getFanMerchandise().size());

 				assertTrue(fan.isSetFanMerchandise());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -796,7 +796,7 @@
 				assertTrue(!getProject().getAllModelElements().contains(merch2));

 				assertTrue(!getProject().getAllModelElements().contains(merch3));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -835,7 +835,7 @@
 				mrop2.reverse().apply(getProject());

 				mrop1.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(3, fan.getFanMerchandise().size());

 		assertTrue(fan.isSetFanMerchandise());

@@ -862,7 +862,7 @@
 				assertEquals(3, fan.getFanMerchandise().size());

 				assertTrue(fan.isSetFanMerchandise());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 

@@ -876,7 +876,7 @@
 				assertTrue(!getProject().getAllModelElements().contains(merch2));

 				assertTrue(!getProject().getAllModelElements().contains(merch3));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final Project secondProject = ModelUtil.clone(getProject());

 

@@ -917,7 +917,7 @@
 				creaDelOp2.reverse().reverse().apply(getProject());

 				creaDelOp3.reverse().reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(0, fan.getFanMerchandise().size());

 		assertTrue(!fan.isSetFanMerchandise());

@@ -947,7 +947,7 @@
 				assertEquals(0, fan.getFanMerchandise().size());

 				assertFalse(fan.isSetFanMerchandise());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -961,7 +961,7 @@
 				assertEquals(3, fan.getFanMerchandise().size());

 				assertTrue(fan.isSetFanMerchandise());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -991,7 +991,7 @@
 				mrop2.reverse().apply(getProject());

 				mrop1.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(0, fan.getFanMerchandise().size());

 		assertTrue(!fan.isSetFanMerchandise());

@@ -1010,7 +1010,7 @@
 				assertEquals(0, fan.getVisitedTournaments().size());

 				assertTrue(!fan.isSetVisitedTournaments());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -1022,7 +1022,7 @@
 				assertEquals(0, fan.getVisitedTournaments().size());

 				assertTrue(fan.isSetVisitedTournaments());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -1036,7 +1036,7 @@
 			protected void doRun() {

 				multRefOp.apply(secondProject);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(ModelUtil.areEqual(getProject(), secondProject));

 	}

diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceSetOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceSetOperationTest.java
index f7a7fde..b1db2fc 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceSetOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/MultiReferenceSetOperationTest.java
@@ -59,7 +59,7 @@
 				element.getReferences().add(oldValue);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(element.getReferences().size() == 1);
 		assertTrue(element.getReferences().get(0).equals(oldValue));
@@ -69,7 +69,7 @@
 			protected void doRun() {
 				element.getReferences().set(0, newValue);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(1, element.getReferences().size());
 		assertEquals(newValue, element.getReferences().get(0));
@@ -112,7 +112,7 @@
 				assertTrue(testElement.getReferences().size() == 1);
 				assertTrue(testElement.getReferences().get(0).equals(newValue));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -149,7 +149,7 @@
 				assertTrue(testElement.getReferences().size() == 1);
 				assertTrue(testElement.getReferences().get(0).equals(newValue));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -189,7 +189,7 @@
 				assertTrue(testElement.getReferences().get(1).equals(newValue));
 				assertTrue(testElement.getReferences().get(2).equals(third));
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	/**
@@ -215,7 +215,7 @@
 			protected void doRun() {
 				element.getReferences().set(0, newValue);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(element.getReferences().size() == 1);
 		assertTrue(element.getReferences().get(0).equals(newValue));
@@ -226,7 +226,7 @@
 				final AbstractOperation operation = getProjectSpace().getOperations().get(0).reverse();
 				operation.apply(getProject());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertTrue(element.getReferences().size() == 1);
 		assertTrue(element.getReferences().get(0).equals(oldValue));
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/RecordingPerformanceTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/RecordingPerformanceTest.java
index 53f7e6a..a6772d8 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/RecordingPerformanceTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/RecordingPerformanceTest.java
@@ -175,7 +175,7 @@
 			protected void doRun() {
 				getProject().addModelElement(parentTestElement);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 		insertWatch.stop();
 		assertEquals(COUNT, parentTestElement.getContainedElements().size());
 	}
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/SingleReferenceOperationTest.java b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/SingleReferenceOperationTest.java
index 82d2e78..7222303 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/SingleReferenceOperationTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/src/org/eclipse/emf/emfstore/client/recording/test/SingleReferenceOperationTest.java
@@ -86,7 +86,7 @@
 				assertEquals(1, initiatedTestElements.size());

 				assertEquals(useCase, initiatedTestElements.get(0));

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -239,7 +239,7 @@
 			protected void doRun() {

 				reversedSingleReferenceOperation.apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(oldActor, useCase.getNonContained_NTo1());

 

@@ -285,7 +285,7 @@
 				clearOperations();

 				useCase.setContainer(section);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 		// composite operation containing a multiref operation and a singleref operation expected

@@ -298,7 +298,7 @@
 				final AbstractOperation reverse = operations.get(0).reverse();

 				reverse.apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(ModelUtil.areEqual(getProject(), expectedProject));

 	}

@@ -337,7 +337,7 @@
 				assertEquals(proposal, newIssue.getContainedElements().get(0));

 				assertEquals(newIssue, proposal.getContainer());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(1, getProjectSpace().getOperations().size());

 

@@ -404,7 +404,7 @@
 				proposal.setContainer(issue);

 				clearOperations();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(1, issue.getContainedElements().size());

 		assertEquals(proposal, issue.getContainedElements().get(0));

@@ -472,7 +472,7 @@
 				fan.setFavouritePlayer(favPlayer);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(favPlayer, fan.getFavouritePlayer());

 		assertTrue(fan.isSetFavouritePlayer());

@@ -485,7 +485,7 @@
 			protected void doRun() {

 				fan.unsetFavouritePlayer();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(favPlayer.equals(fan.getFavouritePlayer()));

 		assertEquals(null, fan.getFavouritePlayer());

@@ -522,7 +522,7 @@
 				fan.setFavouritePlayer(favPlayer);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(favPlayer, fan.getFavouritePlayer());

 		assertTrue(fan.isSetFavouritePlayer());

@@ -535,7 +535,7 @@
 			protected void doRun() {

 				fan.unsetFavouritePlayer();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(favPlayer.equals(fan.getFavouritePlayer()));

 		assertEquals(null, fan.getFavouritePlayer());

@@ -559,7 +559,7 @@
 			protected void doRun() {

 				singleRefOp.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(favPlayer, fan.getFavouritePlayer());

 		assertTrue(fan.isSetFavouritePlayer());

@@ -580,7 +580,7 @@
 				fan.setFavouritePlayer(favPlayer);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(favPlayer, fan.getFavouritePlayer());

 		assertTrue(fan.isSetFavouritePlayer());

@@ -592,7 +592,7 @@
 			protected void doRun() {

 				fan.unsetFavouritePlayer();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(favPlayer.equals(fan.getFavouritePlayer()));

 		assertEquals(null, fan.getFavouritePlayer());

@@ -617,7 +617,7 @@
 			protected void doRun() {

 				singleRefOp.reverse().reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(favPlayer.equals(fan.getFavouritePlayer()));

 		assertEquals(null, fan.getFavouritePlayer());

@@ -637,7 +637,7 @@
 				getProject().addModelElement(fan);

 				getProject().addModelElement(favPlayer);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(false, fan.isSetFavouritePlayer());

 

@@ -649,7 +649,7 @@
 			protected void doRun() {

 				fan.setFavouritePlayer(favPlayer);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(favPlayer.equals(fan.getFavouritePlayer()));

 		assertEquals(favPlayer, fan.getFavouritePlayer());

@@ -672,7 +672,7 @@
 			protected void doRun() {

 				singleRefOp.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(null, fan.getFavouritePlayer());

 		assertEquals(false, fan.isSetFavouritePlayer());

@@ -693,7 +693,7 @@
 				fan.setFavouriteMerchandise(merch);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(merch, fan.getFavouriteMerchandise());

 		assertTrue(fan.isSetFavouriteMerchandise());

@@ -706,7 +706,7 @@
 			protected void doRun() {

 				fan.unsetFavouriteMerchandise();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(merch.equals(fan.getFavouriteMerchandise()));

 		assertEquals(null, fan.getFavouriteMerchandise());

@@ -737,7 +737,7 @@
 				fan.setFavouriteMerchandise(merch);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(merch, fan.getFavouriteMerchandise());

 		assertTrue(fan.isSetFavouriteMerchandise());

@@ -749,7 +749,7 @@
 			protected void doRun() {

 				fan.unsetFavouriteMerchandise();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(merch.equals(fan.getFavouriteMerchandise()));

 		assertEquals(null, fan.getFavouriteMerchandise());

@@ -768,7 +768,7 @@
 			protected void doRun() {

 				creaDelOp.reverse().reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(merch.equals(fan.getFavouriteMerchandise()));

 		assertEquals(null, fan.getFavouriteMerchandise());

@@ -789,7 +789,7 @@
 				fan.setFavouriteMerchandise(merch);

 

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(merch, fan.getFavouriteMerchandise());

 		assertTrue(fan.isSetFavouriteMerchandise());

@@ -802,7 +802,7 @@
 			protected void doRun() {

 				fan.unsetFavouriteMerchandise();

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertFalse(merch.equals(fan.getFavouriteMerchandise()));

 		assertEquals(null, fan.getFavouriteMerchandise());

@@ -820,7 +820,7 @@
 			protected void doRun() {

 				creaDelOp.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertEquals(merch.getName(), fan.getFavouriteMerchandise().getName());

 		assertEquals(merch.getPrice(), fan.getFavouriteMerchandise().getPrice());

@@ -842,7 +842,7 @@
 				assertEquals(null, fan.getFavouriteMerchandise());

 				assertEquals(false, fan.isSetFavouriteMerchandise());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -854,7 +854,7 @@
 				assertEquals(merch, fan.getFavouriteMerchandise());

 				assertTrue(fan.isSetFavouriteMerchandise());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -873,7 +873,7 @@
 			protected void doRun() {

 				singleRefOp.reverse().apply(getProject());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertNull(fan.getFavouriteMerchandise());

 		assertFalse(fan.isSetFavouriteMerchandise());

@@ -891,7 +891,7 @@
 				assertEquals(null, fan.getFavouritePlayer());

 				assertTrue(!fan.isSetFavouritePlayer());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		clearOperations();

 		final Project secondProject = ModelUtil.clone(getProject());

@@ -903,7 +903,7 @@
 				assertEquals(null, fan.getFavouritePlayer());

 				assertTrue(fan.isSetFavouritePlayer());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		final List<AbstractOperation> operations = getProjectSpace().getOperations();

 

@@ -915,7 +915,7 @@
 			protected void doRun() {

 				singleRefOp.apply(secondProject);

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		assertTrue(ModelUtil.areEqual(getProject(), secondProject));

 	}

diff --git a/tests/org.eclipse.emf.emfstore.client.test/AllTestsWithNormalEditingDomain.launch b/tests/org.eclipse.emf.emfstore.client.test/AllTestsWithNormalEditingDomain.launch
index fc6243f..f80673d 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/AllTestsWithNormalEditingDomain.launch
+++ b/tests/org.eclipse.emf.emfstore.client.test/AllTestsWithNormalEditingDomain.launch
@@ -2,7 +2,6 @@
 <launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
 <setAttribute key="additional_plugins"/>
 <booleanAttribute key="append.args" value="true"/>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
 <booleanAttribute key="askclear" value="false"/>
 <booleanAttribute key="automaticAdd" value="false"/>
 <booleanAttribute key="automaticValidate" value="false"/>
@@ -186,8 +185,8 @@
 <setEntry value="org.eclipse.xsd.source:default"/>
 <setEntry value="org.eclipse.xsd:default"/>
 </setAttribute>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:default,org.eclipse.equinox.transforms.hook@default:default,org.eclipse.equinox.weaving.hook@default:default,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:default,org.eclipse.emf.emfstore.client.changetracking.test@default:default,org.eclipse.emf.emfstore.client.conflictdetection.test@default:default,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.recording.test@default:default,org.eclipse.emf.emfstore.client.test@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.example.helloworld@default:default,org.eclipse.emf.emfstore.example.merging@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.test@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.example.helloworld@default:default,org.eclipse.emf.emfstore.example.merging@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emf.emfstore.client.test/TransactionalAllTests.launch b/tests/org.eclipse.emf.emfstore.client.test/TransactionalAllTests.launch
new file mode 100644
index 0000000..897b99c
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.test/TransactionalAllTests.launch
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.emfstore.client.test.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.emfstore.client.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.amalgam.discovery:default"/>
+<setEntry value="org.eclipse.cvs.source:default"/>
+<setEntry value="org.eclipse.cvs:default"/>
+<setEntry value="org.eclipse.draw2d.sdk:default"/>
+<setEntry value="org.eclipse.draw2d.source:default"/>
+<setEntry value="org.eclipse.draw2d:default"/>
+<setEntry value="org.eclipse.emf.cdo.epp:default"/>
+<setEntry value="org.eclipse.emf.cdo.server:default"/>
+<setEntry value="org.eclipse.emf.cdo:default"/>
+<setEntry value="org.eclipse.emf.codegen.ecore.source:default"/>
+<setEntry value="org.eclipse.emf.codegen.ecore.ui.source:default"/>
+<setEntry value="org.eclipse.emf.codegen.ecore.ui:default"/>
+<setEntry value="org.eclipse.emf.codegen.ecore:default"/>
+<setEntry value="org.eclipse.emf.codegen.source:default"/>
+<setEntry value="org.eclipse.emf.codegen.ui.source:default"/>
+<setEntry value="org.eclipse.emf.codegen.ui:default"/>
+<setEntry value="org.eclipse.emf.codegen:default"/>
+<setEntry value="org.eclipse.emf.common.source:default"/>
+<setEntry value="org.eclipse.emf.common.ui.source:default"/>
+<setEntry value="org.eclipse.emf.common.ui:default"/>
+<setEntry value="org.eclipse.emf.common:default"/>
+<setEntry value="org.eclipse.emf.compare.doc:default"/>
+<setEntry value="org.eclipse.emf.compare.sdk:default"/>
+<setEntry value="org.eclipse.emf.compare.source:default"/>
+<setEntry value="org.eclipse.emf.compare:default"/>
+<setEntry value="org.eclipse.emf.converter.source:default"/>
+<setEntry value="org.eclipse.emf.converter:default"/>
+<setEntry value="org.eclipse.emf.databinding.edit.source:default"/>
+<setEntry value="org.eclipse.emf.databinding.edit:default"/>
+<setEntry value="org.eclipse.emf.databinding.source:default"/>
+<setEntry value="org.eclipse.emf.databinding:default"/>
+<setEntry value="org.eclipse.emf.doc.source:default"/>
+<setEntry value="org.eclipse.emf.doc:default"/>
+<setEntry value="org.eclipse.emf.ecore.edit.source:default"/>
+<setEntry value="org.eclipse.emf.ecore.edit:default"/>
+<setEntry value="org.eclipse.emf.ecore.editor.source:default"/>
+<setEntry value="org.eclipse.emf.ecore.editor:default"/>
+<setEntry value="org.eclipse.emf.ecore.source:default"/>
+<setEntry value="org.eclipse.emf.ecore:default"/>
+<setEntry value="org.eclipse.emf.ecoretools.doc:default"/>
+<setEntry value="org.eclipse.emf.ecoretools.sdk:default"/>
+<setEntry value="org.eclipse.emf.ecoretools.source:default"/>
+<setEntry value="org.eclipse.emf.ecoretools.utils.source:default"/>
+<setEntry value="org.eclipse.emf.ecoretools.utils:default"/>
+<setEntry value="org.eclipse.emf.ecoretools:default"/>
+<setEntry value="org.eclipse.emf.edit.source:default"/>
+<setEntry value="org.eclipse.emf.edit.ui.source:default"/>
+<setEntry value="org.eclipse.emf.edit.ui:default"/>
+<setEntry value="org.eclipse.emf.edit:default"/>
+<setEntry value="org.eclipse.emf.mapping.ecore.editor.source:default"/>
+<setEntry value="org.eclipse.emf.mapping.ecore.editor:default"/>
+<setEntry value="org.eclipse.emf.mapping.ecore.source:default"/>
+<setEntry value="org.eclipse.emf.mapping.ecore:default"/>
+<setEntry value="org.eclipse.emf.mapping.source:default"/>
+<setEntry value="org.eclipse.emf.mapping.ui.source:default"/>
+<setEntry value="org.eclipse.emf.mapping.ui:default"/>
+<setEntry value="org.eclipse.emf.mapping:default"/>
+<setEntry value="org.eclipse.emf.mint.doc:default"/>
+<setEntry value="org.eclipse.emf.mint.sdk:default"/>
+<setEntry value="org.eclipse.emf.mint.source:default"/>
+<setEntry value="org.eclipse.emf.mint:default"/>
+<setEntry value="org.eclipse.emf.query.doc:default"/>
+<setEntry value="org.eclipse.emf.query.ocl.source:default"/>
+<setEntry value="org.eclipse.emf.query.ocl:default"/>
+<setEntry value="org.eclipse.emf.query.sdk:default"/>
+<setEntry value="org.eclipse.emf.query.source:default"/>
+<setEntry value="org.eclipse.emf.query:default"/>
+<setEntry value="org.eclipse.emf.sdk:default"/>
+<setEntry value="org.eclipse.emf.source:default"/>
+<setEntry value="org.eclipse.emf.transaction.doc:default"/>
+<setEntry value="org.eclipse.emf.transaction.sdk:default"/>
+<setEntry value="org.eclipse.emf.transaction.source:default"/>
+<setEntry value="org.eclipse.emf.transaction:default"/>
+<setEntry value="org.eclipse.emf.validation.doc:default"/>
+<setEntry value="org.eclipse.emf.validation.ocl.source:default"/>
+<setEntry value="org.eclipse.emf.validation.ocl:default"/>
+<setEntry value="org.eclipse.emf.validation.sdk:default"/>
+<setEntry value="org.eclipse.emf.validation.source:default"/>
+<setEntry value="org.eclipse.emf.validation:default"/>
+<setEntry value="org.eclipse.emf.workspace.doc:default"/>
+<setEntry value="org.eclipse.emf.workspace.source:default"/>
+<setEntry value="org.eclipse.emf.workspace:default"/>
+<setEntry value="org.eclipse.emf:default"/>
+<setEntry value="org.eclipse.epp.mpc:default"/>
+<setEntry value="org.eclipse.epp.package.common.feature:default"/>
+<setEntry value="org.eclipse.epp.package.modeling.feature:default"/>
+<setEntry value="org.eclipse.epp.usagedata.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.discovery.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
+<setEntry value="org.eclipse.gef.sdk:default"/>
+<setEntry value="org.eclipse.gef.source:default"/>
+<setEntry value="org.eclipse.gef:default"/>
+<setEntry value="org.eclipse.help.source:default"/>
+<setEntry value="org.eclipse.help:default"/>
+<setEntry value="org.eclipse.jdt.source:default"/>
+<setEntry value="org.eclipse.jdt:default"/>
+<setEntry value="org.eclipse.mylyn.bugzilla_feature:default"/>
+<setEntry value="org.eclipse.mylyn.context_feature:default"/>
+<setEntry value="org.eclipse.mylyn.ide_feature:default"/>
+<setEntry value="org.eclipse.mylyn.java_feature:default"/>
+<setEntry value="org.eclipse.mylyn.pde_feature:default"/>
+<setEntry value="org.eclipse.mylyn.team_feature:default"/>
+<setEntry value="org.eclipse.mylyn.wikitext_feature:default"/>
+<setEntry value="org.eclipse.mylyn_feature:default"/>
+<setEntry value="org.eclipse.net4j.db.derby:default"/>
+<setEntry value="org.eclipse.net4j.db.h2:default"/>
+<setEntry value="org.eclipse.net4j.db:default"/>
+<setEntry value="org.eclipse.net4j:default"/>
+<setEntry value="org.eclipse.ocl.all.sdk:default"/>
+<setEntry value="org.eclipse.ocl.all:default"/>
+<setEntry value="org.eclipse.ocl.doc:default"/>
+<setEntry value="org.eclipse.ocl.edit.source:default"/>
+<setEntry value="org.eclipse.ocl.edit:default"/>
+<setEntry value="org.eclipse.ocl.source:default"/>
+<setEntry value="org.eclipse.ocl.uml.source:default"/>
+<setEntry value="org.eclipse.ocl.uml:default"/>
+<setEntry value="org.eclipse.ocl:default"/>
+<setEntry value="org.eclipse.pde.source:default"/>
+<setEntry value="org.eclipse.pde:default"/>
+<setEntry value="org.eclipse.platform.source:default"/>
+<setEntry value="org.eclipse.platform:default"/>
+<setEntry value="org.eclipse.rcp.source:default"/>
+<setEntry value="org.eclipse.rcp:default"/>
+<setEntry value="org.eclipse.sdk:default"/>
+<setEntry value="org.eclipse.uml2.doc:default"/>
+<setEntry value="org.eclipse.uml2.examples.source:default"/>
+<setEntry value="org.eclipse.uml2.examples:default"/>
+<setEntry value="org.eclipse.uml2.sdk:default"/>
+<setEntry value="org.eclipse.uml2.source:default"/>
+<setEntry value="org.eclipse.uml2:default"/>
+<setEntry value="org.eclipse.xsd.doc.source:default"/>
+<setEntry value="org.eclipse.xsd.doc:default"/>
+<setEntry value="org.eclipse.xsd.ecore.converter.source:default"/>
+<setEntry value="org.eclipse.xsd.ecore.converter:default"/>
+<setEntry value="org.eclipse.xsd.edit.source:default"/>
+<setEntry value="org.eclipse.xsd.edit:default"/>
+<setEntry value="org.eclipse.xsd.editor.source:default"/>
+<setEntry value="org.eclipse.xsd.editor:default"/>
+<setEntry value="org.eclipse.xsd.mapping.editor.source:default"/>
+<setEntry value="org.eclipse.xsd.mapping.editor:default"/>
+<setEntry value="org.eclipse.xsd.mapping.source:default"/>
+<setEntry value="org.eclipse.xsd.mapping:default"/>
+<setEntry value="org.eclipse.xsd.sdk:default"/>
+<setEntry value="org.eclipse.xsd.source:default"/>
+<setEntry value="org.eclipse.xsd:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.test@default:default,org.eclipse.emf.emfstore.client.transaction@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.example.helloworld@default:default,org.eclipse.emf.emfstore.example.merging@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/ProjectCacheTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/ProjectCacheTest.java
index c584317..2d48669 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/ProjectCacheTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/common/ProjectCacheTest.java
@@ -42,7 +42,7 @@
 				project.addModelElement(element);
 
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertNotNull(project.getModelElementId(element));
 		assertNotNull(project.getModelElementId(cutElement));
@@ -62,7 +62,7 @@
 				cutElementIWhileCommand[0] = project.getModelElementId(cutElement);
 				project.addIdEObjectCollectionChangeObserver(createDummyObserver());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(cutElementIWhileCommand[0], project.getModelElementId(cutElement));
 	}
@@ -103,7 +103,7 @@
 			protected void doRun() {
 				project.addModelElement(element);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 
@@ -111,7 +111,7 @@
 			protected void doRun() {
 				project.deleteModelElement(element);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertNull(project.getModelElementId(element));
 	}
@@ -130,21 +130,21 @@
 				project.addModelElement(container);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
 			protected void doRun() {
 				element.setContainer(null);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
 			protected void doRun() {
 				container.getContainedElements().add(element);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 	}
 
@@ -164,14 +164,14 @@
 				project.addModelElement(container2);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
 			protected void doRun() {
 				element.setContainer(container2);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 	}
 
@@ -191,7 +191,7 @@
 				project.addModelElement(container2);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -199,7 +199,7 @@
 				container.getContainedElements().remove(element);
 				container2.getContainedElements().add(element);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 	@Test
@@ -216,21 +216,21 @@
 				project.addModelElement(container);
 				clearOperations();
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
 			protected void doRun() {
 				container.getContainedElements().add(element);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
 			protected void doRun() {
 				element.setContainer(container);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		new EMFStoreCommand() {
 			@Override
@@ -238,7 +238,7 @@
 				container.getContainedElements().remove(element);
 				element.setContainer(null);
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 	}
 
 }
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/memory/MemoryLoadTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/memory/MemoryLoadTest.java
index 813af1c..2e0a2e1 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/memory/MemoryLoadTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/memory/MemoryLoadTest.java
@@ -322,7 +322,7 @@
 			protected void doRun() {

 				ModelMutator.generateModel(config);

 			}

-		}.run(null, false);

+		}.run(false, null);

 

 		final ProjectSpace projectSpace = ((ESWorkspaceImpl) runningEMFStoreRule.connectedWorkspace()).toInternalAPI()

 			.importProject(

@@ -355,7 +355,7 @@
 				ModelMutator.changeModel(mmc);

 				System.out.println("Changed model: " + (System.currentTimeMillis() - time) / 1000.0 + "sec");

 			}

-		}.run(((ESLocalProjectImpl) project).toInternalAPI().getContentEditingDomain(), false);

+		}.run(false, ((ESLocalProjectImpl) project).toInternalAPI().getContentEditingDomain());

 	}

 

 	private ModelMutatorConfiguration createModelMutatorConfigurationRandom(String modelKey, EObject rootObject,

@@ -386,7 +386,7 @@
 					return null;

 				}

 			}

-		}.run(((ESLocalProjectImpl) project).toInternalAPI().getContentEditingDomain(), false);

+		}.run(false, ((ESLocalProjectImpl) project).toInternalAPI().getContentEditingDomain());

 	}

 

 	private void deleteLocallyIfNeeded(final ESLocalProject project) {

diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/PersistenceTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/PersistenceTest.java
index 1d03037..b712f28 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/PersistenceTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/client/test/persistence/PersistenceTest.java
@@ -44,7 +44,7 @@
 			protected void doRun() {
 				getProject().addModelElement(TestmodelFactory.eINSTANCE.createTestElement());
 			}
-		}.run(getProjectSpace().getContentEditingDomain(), false);
+		}.run(false, getProjectSpace().getContentEditingDomain());
 
 		assertEquals(
 			ESWorkspaceProviderImpl.getInstance().getWorkspace().getLocalProjects().get(0).getModelElements().size(), 1);
diff --git a/tests/org.eclipse.emf.emfstore.server.test/AllServerTestsTransactional.launch b/tests/org.eclipse.emf.emfstore.server.test/TransactionalAllServerTests.launch
similarity index 71%
rename from tests/org.eclipse.emf.emfstore.server.test/AllServerTestsTransactional.launch
rename to tests/org.eclipse.emf.emfstore.server.test/TransactionalAllServerTests.launch
index b3006f8..53cbd60 100644
--- a/tests/org.eclipse.emf.emfstore.server.test/AllServerTestsTransactional.launch
+++ b/tests/org.eclipse.emf.emfstore.server.test/TransactionalAllServerTests.launch
@@ -12,7 +12,7 @@
 <booleanAttribute key="clearwslog" value="false"/>
 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
 <booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.emfstore.branding,org.eclipse.emf.emfstore.client.example.test,org.eclipse.emf.emfstore.client.test.alltests,org.eclipse.emf.emfstore.client.test.ui,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.esbrowser,org.eclipse.emf.emfstore.ecore,org.eclipse.emf.emfstore.example.helloworld,org.eclipse.emf.emfstore.example.installer,org.eclipse.emf.emfstore.example.merging,org.eclipse.emf.emfstore.example.sessionprovider,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.fuzzy.emf.edit,org.eclipse.emf.emfstore.fuzzy.emf.editor,org.eclipse.emf.emfstore.fuzzy.emf.example"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.emfstore.branding,org.eclipse.emf.emfstore.client.example.test,org.eclipse.emf.emfstore.client.test.alltests,org.eclipse.emf.emfstore.client.test.ui,org.eclipse.emf.emfstore.client.ui,org.eclipse.emf.emfstore.client.ui.historybrowsercomparator,org.eclipse.emf.emfstore.ecore,org.eclipse.emf.emfstore.example.helloworld,org.eclipse.emf.emfstore.example.installer,org.eclipse.emf.emfstore.example.merging,org.eclipse.emf.emfstore.example.sessionprovider,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.fuzzy.emf.edit,org.eclipse.emf.emfstore.fuzzy.emf.editor,org.eclipse.emf.emfstore.fuzzy.emf.example,org.eclipse.emf.emfstore.mongodb,org.eclipse.emf.emfstore.mongodb.client,org.eclipse.emf.emfstore.mongodb.server"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -34,7 +34,7 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="false"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.commons.codec*1.4.0.v201209201156@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit*4.11.0.v201303080030@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi*3.8.2.v20130124-134944@-1:true,org.eclipse.osgi.services@default:default,org.eclipse.team.core@default:default,org.hamcrest.core@default:default,org.junit@default:default"/>
 <stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.emfstore.client.api.test@default:false,org.eclipse.emf.emfstore.client.changetracking.test@default:false,org.eclipse.emf.emfstore.client.conflictdetection.test@default:false,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.recording.test@default:false,org.eclipse.emf.emfstore.client.test@default:default,org.eclipse.emf.emfstore.client.transaction@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model.edit@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.fuzzy.emf.test@default:default,org.eclipse.emf.emfstore.fuzzy.emf@default:default,org.eclipse.emf.emfstore.fuzzy@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.modelmutator@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server.test@default:false,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.emfstore.test.common@default:default,org.eclipse.emf.emfstore.test.model.edit@default:default,org.eclipse.emf.emfstore.test.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
diff --git a/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/ChecksumTest.java b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/ChecksumTest.java
index e503b6a..ca7df8b 100644
--- a/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/ChecksumTest.java
+++ b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/ChecksumTest.java
@@ -39,6 +39,7 @@
 import org.eclipse.emf.emfstore.client.test.common.dsl.Delete;

 import org.eclipse.emf.emfstore.client.test.common.dsl.TestElementFeatures;

 import org.eclipse.emf.emfstore.client.test.common.dsl.Update;

+import org.eclipse.emf.emfstore.client.util.ESVoidCallable;

 import org.eclipse.emf.emfstore.client.util.RunESCommand;

 import org.eclipse.emf.emfstore.common.model.ESModelElementIdToEObjectMapping;

 import org.eclipse.emf.emfstore.internal.client.model.Configuration;

@@ -109,8 +110,13 @@
 		Add.toProject(getLocalProject(), attributeName);

 		Add.toProject(getLocalProject(), attribute);

 

-		attribute.getContainedElements().add(value);

-		table.getElementMap().put(attributeName, value);

+		Add.toContainedElements(getLocalProject(), attribute, value);

+		getLocalProject().run(new ESVoidCallable() {

+			@Override

+			public void run() {

+				table.getElementMap().put(attributeName, value);

+			}

+		});

 

 		final long checksum = computeChecksum(getLocalProject());

 

diff --git a/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/PropertiesTest.java b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/PropertiesTest.java
index b4f0a85..93566be 100644
--- a/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/PropertiesTest.java
+++ b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/test/PropertiesTest.java
@@ -66,7 +66,7 @@
 					throw new RuntimeException(e);

 				}

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		// 1. Test, ob transmit funktioniert

 		Assert.assertEquals("test1", propertyManager1.getSharedStringProperty("FirstPropKey"));

@@ -97,7 +97,7 @@
 					throw new RuntimeException(e);

 				}

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		// 2. Funktioniert update

 		Assert.assertEquals("test5", propertyManager1.getSharedStringProperty("SecondTest"));

@@ -134,7 +134,7 @@
 

 				}

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		// check if rollback succeeded

 		Assert.assertEquals("test1", propertyManager1.getSharedStringProperty("SecondTest"));

@@ -149,7 +149,7 @@
 				getProjectSpace1().getPropertyManager().setLocalProperty("foo",

 					TestmodelFactory.eINSTANCE.createTestElement());

 			}

-		}.run(getProjectSpace().getContentEditingDomain(), false);

+		}.run(false, getProjectSpace().getContentEditingDomain());

 

 		((ProjectSpaceBase) getProjectSpace1()).save();

 		final ProjectSpace loadedProjectSpace = ModelUtil.loadEObjectFromResource(

diff --git a/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ComparingESTest.java b/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ComparingESTest.java
index c72eb56..3eb230b 100644
--- a/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ComparingESTest.java
+++ b/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ComparingESTest.java
@@ -75,14 +75,21 @@
 	 */
 	@Override
 	public void clearOperations() {
-		RunESCommand.run(new Callable<Void>() {
-			public Void call() throws Exception {
-				if (isCompareAtEnd) {
+		if (isCompareAtEnd) {
+			RunESCommand.run(new Callable<Void>() {
+				public Void call() throws Exception {
 					clonedProjectSpace.applyOperations(getProjectSpace()
 						.getOperations(), false);
 					clonedProjectSpace.applyOperations(getProjectSpace()
 						.getOperationManager().clearOperations(), false);
-				} else {
+					return null;
+				}
+			}, clonedProjectSpace.getContentEditingDomain());
+		}
+
+		RunESCommand.run(new Callable<Void>() {
+			public Void call() throws Exception {
+				if (!isCompareAtEnd) {
 					getProjectSpace().getOperationManager().clearOperations();
 				}
 				getProjectSpace().getOperations().clear();
@@ -102,8 +109,13 @@
 		String clonedProjectString = StringUtils.EMPTY;
 
 		if (isCompareAtEnd) {
-			clonedProjectSpace.applyOperations(getProjectSpace()
-				.getOperations(), true);
+			RunESCommand.run(new ESVoidCallable() {
+				@Override
+				public void run() {
+					clonedProjectSpace.applyOperations(getProjectSpace()
+						.getOperations(), true);
+				}
+			}, clonedProjectSpace.getContentEditingDomain());
 
 			try {
 				projectString = ModelUtil.eObjectToString(getProjectSpace()
diff --git a/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ESTest.java b/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ESTest.java
index a8efab3..d4f3f25 100644
--- a/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ESTest.java
+++ b/tests/org.eclipse.emf.emfstore.test.common/src/org/eclipse/emf/emfstore/client/test/common/cases/ESTest.java
@@ -27,13 +27,12 @@
 import org.eclipse.emf.emfstore.client.util.RunESCommand;
 import org.eclipse.emf.emfstore.internal.client.model.ESWorkspaceProviderImpl;
 import org.eclipse.emf.emfstore.internal.client.model.ProjectSpace;
-import org.eclipse.emf.emfstore.internal.client.model.Workspace;
 import org.eclipse.emf.emfstore.internal.client.model.changeTracking.notification.recording.NotificationRecording;
 import org.eclipse.emf.emfstore.internal.client.model.impl.ProjectSpaceImpl;
+import org.eclipse.emf.emfstore.internal.client.model.impl.WorkspaceBase;
 import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESLocalProjectImpl;
 import org.eclipse.emf.emfstore.internal.common.CommonUtil;
 import org.eclipse.emf.emfstore.internal.common.model.Project;
-import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util.OperationsCanonizer;
 import org.eclipse.emf.emfstore.server.exceptions.ESException;
@@ -68,17 +67,22 @@
 	 */
 	public ProjectSpace cloneProjectSpace(final ProjectSpace projectSpace) {
 
-		final Workspace workspace = ESWorkspaceProviderImpl.getInstance()
-			.getWorkspace().toInternalAPI();
+		final WorkspaceBase workspace = (WorkspaceBase) ESWorkspaceProviderImpl
+			.getInstance().getWorkspace().toInternalAPI();
 
-		return RunESCommand.runWithResult(new Callable<ProjectSpace>() {
+		final ProjectSpace clonedProjectSpace = RunESCommand.runWithResult(new Callable<ProjectSpace>() {
 			public ProjectSpace call() throws Exception {
-				final Project clonedProject = ModelUtil.clone(projectSpace
-					.getProject());
-				return workspace.importProject(clonedProject,
-					CLONED_PROJECT_NAME, CLONED_PROJECT_DESCRIPTION);
+				return workspace.cloneProject(
+					CLONED_PROJECT_NAME, getProject());
 			}
 		});
+		RunESCommand.run(new ESVoidCallable() {
+			@Override
+			public void run() {
+				clonedProjectSpace.initContentResources();
+			}
+		}, clonedProjectSpace.getContentEditingDomain());
+		return clonedProjectSpace;
 	}
 
 	@Before