diff --git a/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF
index d7607f9..87be224 100644
--- a/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.model.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Client Model Edit
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.model.edit;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.emfstore.internal.client.model.provider.ClientModelEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
@@ -12,11 +12,11 @@
  r;uses:="org.eclipse.emf.ecore,  org.eclipse.emf.emfstore.internal.co
  mmon.model.provider,  org.eclipse.emf.common.util,  org.eclipse.emf.c
  ommon,  org.eclipse.emf.edit.provider,  org.eclipse.emf.common.notify
- ,  org.eclipse.emf.emfstore.internal.client.model.util";version="1.7.
+ ,  org.eclipse.emf.emfstore.internal.client.model.util";version="1.8.
  0"
-Require-Bundle: org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml
index 97fb7e8..3cdd779 100644
--- a/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.model.edit/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.model.edit</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF
index 7b93f1f..cbe22e6 100644
--- a/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.transaction/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Transaction
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.transaction;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.emf.transaction;bundle-version="[1.6.0,2.0.0)";visibility:=reexport
 Export-Package: org.eclipse.emf.emfstore.internal.client.transaction;v
- ersion="1.7.0";x-internal:=true
+ ersion="1.8.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml b/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml
index f6413e6..338e224 100644
--- a/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.transaction/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.transaction</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF
index f515101..887d83c 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: HistoryBrowserComparator
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui.historybrowsercomparator;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.compare;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
  org.eclipse.compare;bundle-version="[3.5.300,4.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.client.ui;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.emf.compare.ide.ui;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
  org.eclipse.emf.compare.ide;bundle-version="[3.1.0,4.0.0)";visibility:=reexport,
  org.eclipse.emf.compare.edit;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
@@ -16,4 +16,4 @@
  org.eclipse.jface;bundle-version="[3.8.0,4.0.0)",
  org.eclipse.ui.workbench;bundle-version="[3.0.0,4.0.0)"
 Export-Package: org.eclipse.emf.emfstore.client.ui.historybrowsercompa
- rator;version="1.7.0";x-internal:=true
+ rator;version="1.8.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml
index 5cf8a8d..e256ee6 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.historybrowsercomparator</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.rap/ECP_EMFStore_RAP_dev_target.target b/bundles/org.eclipse.emf.emfstore.client.ui.rap/ECP_EMFStore_RAP_dev_target.target
new file mode 100644
index 0000000..944a6a6
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.rap/ECP_EMFStore_RAP_dev_target.target
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="ECP_EMFStore_RAP_dev_target" sequenceNumber="261">
+<locations>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.edapt.runtime.feature.source.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/edapt/p2/nightly"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.hamcrest.core.source" version="1.3.0.v201303031735"/>
+<unit id="org.hamcrest.library.source" version="1.3.0.v201305281000"/>
+<unit id="org.eclipse.swtbot.forms.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.eclipse.swtbot.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>
+<unit id="org.hamcrest.core" version="1.3.0.v201303031735"/>
+<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
+<unit id="org.hamcrest.library" version="1.3.0.v201305281000"/>
+<repository location="http://download.eclipse.org/technology/swtbot/releases/2.3.0/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.rap.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.validation.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.net4j.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.rap.equinox.target.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.rap.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.rap.sdk.feature.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/neon/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.platform.ide" version="0.0.0"/>
+<repository location="http://download.eclipse.org/eclipse/updates/4.6milestones"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.h2" version="0.0.0"/>
+<unit id="org.h2.source" version="0.0.0"/>
+<unit id="com.google.guava" version="0.0.0"/>
+<unit id="javax.annotation" version="0.0.0"/>
+<unit id="javax.annotation.source" version="0.0.0"/>
+<unit id="com.google.guava.source" version="0.0.0"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20151221205849/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.mockito.mockito-all" version="0.0.0"/>
+<repository location="http://build.eclipse.org/rt/rap/base-platforms/2.3/extra-dependencies/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipselabs.mongo.emf.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipselabs.mongo.emf.feature.source.feature.group" version="0.0.0"/>
+<repository location="http://bryanhunt.github.com/mongo-emf/releases/0.7.1"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.validation.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.net4j.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.compare.source.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.ocl.all.sdk.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/luna/"/>
+</location>
+</locations>
+</target>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.ui.rap/META-INF/MANIFEST.MF
index c839639..8d81494 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.rap/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Client UI for RAP
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui.rap
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client.ui;bundle-version="1.7.0"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client.ui;bundle-version="1.8.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.eclipse.emf.emfstore.internal.client.ui.dialogs.lo
- gin;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.interna
- l.client.ui.dialogs.merge.ui;version="1.7.0";x-internal:=true,org.ecl
- ipse.emf.emfstore.internal.client.ui.util;version="1.7.0";x-friends:=
+ gin;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.interna
+ l.client.ui.dialogs.merge.ui;version="1.8.0";x-internal:=true,org.ecl
+ ipse.emf.emfstore.internal.client.ui.util;version="1.8.0";x-friends:=
  "org.eclipse.emf.emfstore.client.ui"
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.rap/ecpwebemfstore.launch b/bundles/org.eclipse.emf.emfstore.client.ui.rap/ecpwebemfstore.launch
new file mode 100644
index 0000000..0858467
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.rap/ecpwebemfstore.launch
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<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="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ecpwebemfstore"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<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.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console -consolelog"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
+<stringAttribute key="org.eclipse.rap.launch.browserMode" value="EXTERNAL"/>
+<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.tools.launch/ecpwebemfstore"/>
+<booleanAttribute key="org.eclipse.rap.launch.developmentMode" value="true"/>
+<stringAttribute key="org.eclipse.rap.launch.entryPoint" value="org.eclipse.emf.ecp.rap.viewapp"/>
+<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="STANDARD"/>
+<stringAttribute key="org.eclipse.rap.launch.logLevel" value="OFF"/>
+<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
+<intAttribute key="org.eclipse.rap.launch.port" value="52979"/>
+<stringAttribute key="org.eclipse.rap.launch.servletName" value="view"/>
+<stringAttribute key="org.eclipse.rap.launch.servletPath" value="/ecpWeb"/>
+<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
+<booleanAttribute key="org.eclipse.rap.launch.terminatePrevious" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="target_bundles" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.fileupload@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.java7@default:false,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.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.emf.rap@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.filedialog@default:default,org.eclipse.rap.fileupload@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.hamcrest.core@default:default,org.junit@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="timestamp" value="1367832274568"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.emf.ecp.changebroker.provider@default:default,org.eclipse.emf.ecp.changebroker@default:default,org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.emffilter@default:default,org.eclipse.emf.ecp.core.rap.sessionprovider.rwt@1:default,org.eclipse.emf.ecp.core.rap@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core.rap@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.emfstore.localserver@default:default,org.eclipse.emf.ecp.emfstore.ui.e3@default:default,org.eclipse.emf.ecp.emfstore.ui.search@default:default,org.eclipse.emf.ecp.emfstore.ui@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.model.edit@default:default,org.eclipse.emf.ecp.makeithappen.model.viewmodel@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.makeithappen.view.email.renderer@default:default,org.eclipse.emf.ecp.rap.util@default:default,org.eclipse.emf.ecp.rap@default:default,org.eclipse.emf.ecp.ui.e3@default:default,org.eclipse.emf.ecp.ui.rap@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.categorization.model.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.context.locale@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.custom.model@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model.edit@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.label.rap@default:default,org.eclipse.emf.ecp.view.label.ui.swt@default:default,org.eclipse.emf.ecp.view.mappingdmr.model.edit@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.stack.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model.edit@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.util.swt.rap@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.workspace.core@default:default,org.eclipse.emf.emfstore.client.model.edit@default:default,org.eclipse.emf.emfstore.client.ui.rap@default:false,org.eclipse.emf.emfstore.client.ui@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.migration@default:default,org.eclipse.emf.emfstore.server.model.edit@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>
+</launchConfiguration>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.rap/pom.xml b/bundles/org.eclipse.emf.emfstore.client.ui.rap/pom.xml
index 2f955d7..6a1ea57 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.rap/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.rap/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.rap</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.rcp/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.ui.rcp/META-INF/MANIFEST.MF
index fdc0aa3..a8f2c88 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.rcp/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.rcp/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Client UI for RCP
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui.rcp
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client.ui;bundle-version="1.7.0"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client.ui;bundle-version="1.8.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.emfstore.internal.client.ui.dialogs.lo
- gin;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.interna
- l.client.ui.dialogs.merge.ui;version="1.7.0";x-internal:=true,org.ecl
+ gin;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.interna
+ l.client.ui.dialogs.merge.ui;version="1.8.0";x-internal:=true,org.ecl
  ipse.emf.emfstore.internal.client.ui.dialogs.merge.ui.components;vers
- ion="1.7.0";x-friends:="org.eclipse.emf.emfstore.client.ui",org.eclip
- se.emf.emfstore.internal.client.ui.util;version="1.7.0";x-friends:="o
+ ion="1.8.0";x-friends:="org.eclipse.emf.emfstore.client.ui",org.eclip
+ se.emf.emfstore.internal.client.ui.util;version="1.8.0";x-friends:="o
  rg.eclipse.emf.emfstore.client.ui"
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.rcp/pom.xml b/bundles/org.eclipse.emf.emfstore.client.ui.rcp/pom.xml
index cb6261c..7a39dcf 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.rcp/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.rcp/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.rcp</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.transaction/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.ui.transaction/META-INF/MANIFEST.MF
index b46346c..9c9d05e 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.transaction/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.transaction/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Transaction UI
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui.transaction;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.emf.transaction;bundle-version="[1.6.0,2.0.0)",
- org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)"
 Export-Package: org.eclipse.emf.emfstore.internal.client.ui.transactio
- n;version="1.7.0";x-internal:=true
+ n;version="1.8.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui.transaction/pom.xml b/bundles/org.eclipse.emf.emfstore.client.ui.transaction/pom.xml
index 77ec430..b693e09 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui.transaction/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.ui.transaction/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.transaction</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF
index c903f5d..abed5b1 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/META-INF/MANIFEST.MF
@@ -2,60 +2,60 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Client UI
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Activator: org.eclipse.emf.emfstore.internal.client.ui.Activator
 Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.emf.emfstore.server.model
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-ClassPath: .,
  lib/dmp.jar
-Export-Package: org.eclipse.emf.emfstore.client.ui;version="1.7.0"; us
+Export-Package: org.eclipse.emf.emfstore.client.ui;version="1.8.0"; us
  es:="org.eclipse.emf.ecore,  org.eclipse.emf.emfstore.client,  org.ec
  lipse.swt.widgets,  org.eclipse.emf.emfstore.server.model.versionspec
- ",org.eclipse.emf.emfstore.internal.client.ui;version="1.7.0";x-inter
+ ",org.eclipse.emf.emfstore.internal.client.ui;version="1.8.0";x-inter
  nal:=true,org.eclipse.emf.emfstore.internal.client.ui.common;version=
- "1.7.0";x-friends:="org.eclipse.emf.emfstore.client.test.ui,org.eclip
+ "1.8.0";x-friends:="org.eclipse.emf.emfstore.client.test.ui,org.eclip
  se.emf.ecp.emfstore.ui",org.eclipse.emf.emfstore.internal.client.ui.c
- ontroller;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.client
+ ontroller;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.client
  .test.ui,org.eclipse.emf.ecp.emfstore.ui",org.eclipse.emf.emfstore.in
- ternal.client.ui.decorators;version="1.7.0";x-internal:=true,org.ecli
- pse.emf.emfstore.internal.client.ui.dialogs;version="1.7.0";x-interna
+ ternal.client.ui.decorators;version="1.8.0";x-internal:=true,org.ecli
+ pse.emf.emfstore.internal.client.ui.dialogs;version="1.8.0";x-interna
  l:=true,org.eclipse.emf.emfstore.internal.client.ui.dialogs.admin;ver
- sion="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.internal.clien
- t.ui.dialogs.admin.acimport;version="1.7.0";x-internal:=true,org.ecli
+ sion="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.internal.clien
+ t.ui.dialogs.admin.acimport;version="1.8.0";x-internal:=true,org.ecli
  pse.emf.emfstore.internal.client.ui.dialogs.admin.acimport.wizard;ver
- sion="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.internal.clien
- t.ui.dialogs.admin.action;version="1.7.0";x-internal:=true,org.eclips
- e.emf.emfstore.internal.client.ui.dialogs.login;version="1.7.0";x-int
+ sion="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.internal.clien
+ t.ui.dialogs.admin.action;version="1.8.0";x-internal:=true,org.eclips
+ e.emf.emfstore.internal.client.ui.dialogs.login;version="1.8.0";x-int
  ernal:=true,org.eclipse.emf.emfstore.internal.client.ui.dialogs.merge
- ;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.internal.c
- lient.ui.dialogs.merge.ui;version="1.7.0";x-internal:=true,org.eclips
+ ;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.internal.c
+ lient.ui.dialogs.merge.ui;version="1.8.0";x-internal:=true,org.eclips
  e.emf.emfstore.internal.client.ui.dialogs.merge.ui.components;version
- ="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.internal.client.ui
- .dialogs.merge.ui.widgets;version="1.7.0";x-internal:=true,org.eclips
- e.emf.emfstore.internal.client.ui.dialogs.merge.util;version="1.7.0";
+ ="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.internal.client.ui
+ .dialogs.merge.ui.widgets;version="1.8.0";x-internal:=true,org.eclips
+ e.emf.emfstore.internal.client.ui.dialogs.merge.util;version="1.8.0";
  x-internal:=true,org.eclipse.emf.emfstore.internal.client.ui.epackage
- s;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.internal.
- client.ui.exceptions;version="1.7.0";x-internal:=true,org.eclipse.emf
- .emfstore.internal.client.ui.handlers;version="1.7.0";x-internal:=tru
+ s;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.internal.
+ client.ui.exceptions;version="1.8.0";x-internal:=true,org.eclipse.emf
+ .emfstore.internal.client.ui.handlers;version="1.8.0";x-internal:=tru
  e,org.eclipse.emf.emfstore.internal.client.ui.handlers.exportimport;v
- ersion="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.internal.cli
- ent.ui.testers;version="1.7.0";x-internal:=true,org.eclipse.emf.emfst
- ore.internal.client.ui.util;version="1.7.0";x-internal:=true,org.ecli
- pse.emf.emfstore.internal.client.ui.views.changes;version="1.7.0";x-i
+ ersion="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.internal.cli
+ ent.ui.testers;version="1.8.0";x-internal:=true,org.eclipse.emf.emfst
+ ore.internal.client.ui.util;version="1.8.0";x-internal:=true,org.ecli
+ pse.emf.emfstore.internal.client.ui.views.changes;version="1.8.0";x-i
  nternal:=true,org.eclipse.emf.emfstore.internal.client.ui.views.emfst
- orebrowser.views;version="1.7.0";x-friends:="org.eclipse.emf.ecp.emfs
+ orebrowser.views;version="1.8.0";x-friends:="org.eclipse.emf.ecp.emfs
  tore.ui",org.eclipse.emf.emfstore.internal.client.ui.views.historybro
- wserview;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.in
- ternal.client.ui.views.historybrowserview.graph;version="1.7.0";x-int
+ wserview;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.in
+ ternal.client.ui.views.historybrowserview.graph;version="1.8.0";x-int
  ernal:=true,org.eclipse.emf.emfstore.internal.client.ui.views.scm;ver
- sion="1.7.0";x-internal:=true,org.eclipse.wb.swt;version="1.7.0";x-in
+ sion="1.8.0";x-internal:=true,org.eclipse.wb.swt;version="1.8.0";x-in
  ternal:=true;uses:="org.eclipse.jface.resource,org.eclipse.swt.graphi
  cs"
 Import-Package: org.eclipse.core.commands;version="0.0.0",
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml b/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml
index 611688c..61db7f9 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/controller/UIRemoveServerController.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/controller/UIRemoveServerController.java
index cfe9004..0f0f896 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/controller/UIRemoveServerController.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/controller/UIRemoveServerController.java
@@ -5,29 +5,36 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  * Edgar Mueller - initial API and implementation
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.client.ui.controller;
 
+import java.util.ArrayList;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Set;
+import java.util.concurrent.Callable;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.emf.emfstore.client.ESServer;
 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.ServerInfo;
 import org.eclipse.emf.emfstore.internal.client.model.Usersession;
-import org.eclipse.emf.emfstore.internal.client.model.Workspace;
 import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESServerImpl;
+import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESWorkspaceImpl;
+import org.eclipse.emf.emfstore.internal.client.ui.common.RunInUI;
 import org.eclipse.emf.emfstore.server.exceptions.ESException;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Shell;
 
+import com.google.common.collect.Lists;
+
 /**
  * UI controller for removing a server from the workspace.
- * 
+ *
  * @author emueller
  */
 public class UIRemoveServerController extends
@@ -37,7 +44,7 @@
 
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @param shell
 	 *            the parent shell that should be used during the delet
 	 * @param server
@@ -50,9 +57,9 @@
 	}
 
 	/**
-	 * 
+	 *
 	 * {@inheritDoc}
-	 * 
+	 *
 	 * @see org.eclipse.emf.emfstore.internal.client.ui.common.MonitoredEMFStoreAction#doRun(org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
@@ -67,19 +74,72 @@
 			return null;
 		}
 
-		final Workspace workspace = ESWorkspaceProviderImpl.getInstance().getInternalWorkspace();
-		workspace.getServerInfos().remove(serverInfo);
+		final ESWorkspaceImpl workspace = ESWorkspaceProviderImpl.getInstance().getWorkspace();
+		final List<ProjectSpace> projectSpaces = workspace.toInternalAPI().getProjectSpaces();
+		final ArrayList<ProjectSpace> projectSpacesInUse = Lists.newArrayList();
+
+		// check if any local projects are associated with the server to be deleted
+		for (final ProjectSpace projectSpace : projectSpaces) {
+			if (projectSpaceIsInUse(projectSpace, serverInfo)) {
+				projectSpacesInUse.add(projectSpace);
+			}
+		}
+
+		// do not delete server if any of the local projects is in use
+		if (!projectSpacesInUse.isEmpty()) {
+			showWarning(projectSpacesInUse);
+			return null;
+		}
+
+		RunInUI.run(new Callable<Void>() {
+			public Void call() throws Exception {
+				ESWorkspaceProviderImpl.getInstance()
+					.getWorkspace()
+					.toInternalAPI()
+					.getServerInfos()
+					.remove(serverInfo);
+				return null;
+			}
+		});
+
 		final Set<Usersession> invalidSessions = new LinkedHashSet<Usersession>();
 		// remove all now invalid sessions
-		for (final Usersession session : ESWorkspaceProviderImpl.getInstance().getInternalWorkspace().getUsersessions()) {
+		for (final Usersession session : ESWorkspaceProviderImpl.getInstance().getInternalWorkspace()
+			.getUsersessions()) {
 			if (session.getServerInfo() == serverInfo) {
 				invalidSessions.add(session);
 			}
 		}
-		workspace.getUsersessions().removeAll(invalidSessions);
-		workspace.save();
+
+		RunInUI.run(new Callable<Void>() {
+			public Void call() throws Exception {
+				workspace.toInternalAPI().getUsersessions().removeAll(invalidSessions);
+				workspace.toInternalAPI().save();
+				return null;
+			}
+		});
 
 		return null;
 	}
 
+	private void showWarning(final ArrayList<ProjectSpace> projectSpacesInUse) {
+		final StringBuilder message = new StringBuilder();
+
+		for (final ProjectSpace projectSpace : projectSpacesInUse) {
+			message.append(Messages.UIRemoveServerController_Newline + projectSpace.getProjectName());
+		}
+
+		MessageDialog.openError(
+			getShell(),
+			Messages.UIRemoveServerController_ErrorDelete_Title,
+			String.format(
+				Messages.UIRemoveServerController_ErrorDelete_Message
+					+ message.toString(),
+				serverInfo.getName()));
+	}
+
+	private static boolean projectSpaceIsInUse(ProjectSpace projectSpace, ServerInfo serverInfo) {
+		return projectSpace.getUsersession() != null
+			&& projectSpace.getUsersession().getServerInfo().equals(serverInfo);
+	}
 }
\ No newline at end of file
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 c6efcf4..12b823e 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
@@ -7,8 +7,8 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- * ovonwesen
- * emueller
+ * Otto von Wesendonk, Edgar Mueller - initial implementation and API
+ * Edgar Mueller - Bug 476839
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.client.ui.handlers;
 
@@ -92,6 +92,22 @@
 	}
 
 	/**
+	 * Returns whether an object of the given <code>clazz</code>
+	 * can be extracted from the current selection.
+	 *
+	 * @param clazz
+	 *            the type of the object that is requested to be extracted from the current selection
+	 * @return {@code true}, if an object of type <b>T</b> is contained within the current selection,
+	 *         {@code false} otherwise
+	 *
+	 *
+	 * @param <U> the type of the object to be extracted from the current selection
+	 */
+	public <U> boolean hasSelection(Class<U> clazz) {
+		return EMFStoreHandlerUtil.hasSelection(getEvent(), clazz);
+	}
+
+	/**
 	 * Returns the currently active shell.
 	 *
 	 * @return the active shell
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/DeleteProjectHandler.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/DeleteProjectHandler.java
index f070081..7248263 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/DeleteProjectHandler.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/handlers/DeleteProjectHandler.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2012-2016 EclipseSource Muenchen GmbH and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -7,8 +7,8 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- * ovonwesen
- * emueller
+ * Otto von Wesendonk, Edgar Mueller - initial implementation and API
+ * Edgar Mueller - Bug 476839
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.client.ui.handlers;
 
@@ -32,6 +32,9 @@
 	 */
 	@Override
 	public void handle() {
+		if (!hasSelection(ProjectSpace.class)) {
+			return;
+		}
 		new UIDeleteProjectController(getShell(), requireSelection(ProjectSpace.class).toAPI()).execute();
 	}
 }
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/util/EMFStoreHandlerUtil.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/util/EMFStoreHandlerUtil.java
index 3bc67ac..721aacb 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/util/EMFStoreHandlerUtil.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/util/EMFStoreHandlerUtil.java
@@ -7,7 +7,8 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- * ovonwesen
+ * Otto von Wesendonk - initial implementation and API
+ * Edgar Mueller - Bug 476839
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.client.ui.util;
 
@@ -86,4 +87,21 @@
 		return selection;
 	}
 
+	/**
+	 * Returns whether an object of the given <code>clazz</code> can be extracted from
+	 * the current selection.
+	 *
+	 * @param event
+	 *            the event from which to extract the selection
+	 * @param clazz
+	 *            the type of the object that is requested to be extracted from the current selection
+	 * @return {@code true} if an object of type <b>T</b> is contained within the current selection,
+	 *         {@code false} otherwise
+	 *
+	 * @param <T> the type of the object to be extracted from the current selection
+	 */
+	public static <T> boolean hasSelection(ExecutionEvent event, Class<T> clazz) {
+		final T selection = getSelection(event, clazz);
+		return selection != null;
+	}
 }
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateAliasDialog.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateAliasDialog.java
index a3ee53a..2a4448e 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateAliasDialog.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateAliasDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
+ * Copyright (c) 2008-2016 Chair for Applied Software Engineering,
  * Technische Universitaet Muenchen.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -7,7 +7,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- * pfeifferc
+ * Carl Pfeiffer - initial API and implementation
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.client.ui.views.emfstorebrowser.views;
 
@@ -31,6 +31,11 @@
 public class CertificateAliasDialog extends Dialog {
 
 	/**
+	 * Serial version UID for RAP.
+	 */
+	public static final long serialVersionUID = 1L;
+
+	/**
 	 * The message to display, or <code>null</code> if none.
 	 */
 	private final String message;
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateSelectionDialog.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateSelectionDialog.java
index 529dad9..663fd1e 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateSelectionDialog.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CertificateSelectionDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
+ * Copyright (c) 2008-2016 Chair for Applied Software Engineering,
  * Technische Universitaet Muenchen.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -47,6 +47,11 @@
  */
 public class CertificateSelectionDialog extends ElementListSelectionDialog {
 
+	/**
+	 * Serial version UID for RAP.
+	 */
+	public static final long serialVersionUID = 1L;
+
 	private TableItem selectedTableItem;
 	private String alias = StringUtils.EMPTY;
 
@@ -127,26 +132,7 @@
 		// Delete certificate
 		final Button delete = new Button(certButtonsComposite, SWT.NONE);
 		delete.setText(Messages.CertificateSelectionDialog_Delete);
-		delete.addSelectionListener(new SelectionListener() {
-
-			private static final long serialVersionUID = 1L;
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// nothing to do
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				if (selectedTableItem != null && StringUtils.isNotBlank(selectedTableItem.getText())) {
-					final String alias = selectedTableItem.getText();
-					try {
-						KeyStoreManager.getInstance().deleteCertificate(alias);
-						setListElements(KeyStoreManager.getInstance().getCertificates().toArray());
-					} catch (final ESCertificateException e1) {
-						setErrorMessage(e1.getMessage());
-					}
-				}
-			}
-		});
+		delete.addSelectionListener(new DeleteButtonSelectionListener());
 		getFilteredList().addSelectionListener(new SelectionListenerImplementation(certDetails, certAlias));
 		return control;
 	}
@@ -178,8 +164,11 @@
 	 * @author koegel
 	 *
 	 */
-	private final class SelectionListenerImplementation implements SelectionListener {
-		private static final long serialVersionUID = 1L;
+	final class SelectionListenerImplementation implements SelectionListener {
+		/**
+		 * Serial version UID for RAP.
+		 */
+		public static final long serialVersionUID = 1L;
 		private final Text certDetails;
 		private final Text certAlias;
 
@@ -188,10 +177,22 @@
 			this.certAlias = certAlias;
 		}
 
+		/**
+		 *
+		 * {@inheritDoc}
+		 * 
+		 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+		 */
 		public void widgetDefaultSelected(SelectionEvent e) {
 			// nothing to do
 		}
 
+		/**
+		 *
+		 * {@inheritDoc}
+		 * 
+		 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+		 */
 		public void widgetSelected(SelectionEvent e) {
 			if (((Table) e.getSource()).getItems().length > 0) {
 				selectedTableItem = ((Table) e.getSource()).getItems()[((Table) e.getSource()).getSelectionIndex()];
@@ -219,7 +220,10 @@
 	 * @author pfeifferc
 	 */
 	class CertificateSelectionListener implements SelectionListener {
-		private static final long serialVersionUID = 1L;
+		/**
+		 * Serial version UID for RAP.
+		 */
+		public static final long serialVersionUID = 1L;
 
 		/**
 		 * Add a certificate specified by the user.
@@ -272,4 +276,44 @@
 			// nothing to do
 		}
 	}
+
+	/**
+	 * Selection listener for the delete button.
+	 *
+	 */
+	final class DeleteButtonSelectionListener implements SelectionListener {
+
+		/**
+		 * Serial version UID for RAP.
+		 */
+		public static final long serialVersionUID = 1L;
+
+		/**
+		 *
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+		 */
+		public void widgetDefaultSelected(SelectionEvent e) {
+			// nothing to do
+		}
+
+		/**
+		 *
+		 * {@inheritDoc}
+		 *
+		 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+		 */
+		public void widgetSelected(SelectionEvent e) {
+			if (selectedTableItem != null && StringUtils.isNotBlank(selectedTableItem.getText())) {
+				final String alias = selectedTableItem.getText();
+				try {
+					KeyStoreManager.getInstance().deleteCertificate(alias);
+					setListElements(KeyStoreManager.getInstance().getCertificates().toArray());
+				} catch (final ESCertificateException e1) {
+					setErrorMessage(e1.getMessage());
+				}
+			}
+		}
+	}
 }
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CreateProjectDialog.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CreateProjectDialog.java
index 8e41b68..c754a3e 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CreateProjectDialog.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/CreateProjectDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
+ * Copyright (c) 2008-2016 Chair for Applied Software Engineering,
  * Technische Universitaet Muenchen.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -33,6 +33,11 @@
 // TODO: remove description
 public class CreateProjectDialog extends TitleAreaDialog {
 
+	/**
+	 * Serial version UID for RAP.
+	 */
+	public static final long serialVersionUID = 1L;
+
 	private Text txtProjectName;
 	private String name;
 	private String labelText;
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/ElementListSelectionDialog.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/ElementListSelectionDialog.java
index 16f369b..a48ca12 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/ElementListSelectionDialog.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/ElementListSelectionDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
+ * Copyright (c) 2008-2016 Chair for Applied Software Engineering,
  * Technische Universitaet Muenchen.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -7,6 +7,7 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
+ * Edgar Mueller - Fix for Bug 493074
  ******************************************************************************/
 /*******************************************************************************
  *
@@ -61,11 +62,10 @@
  */
 public abstract class ElementListSelectionDialog extends TrayDialog {
 
-	// private static final String SELECT_ALL_TITLE =
-	// Messages.ElementListSelectionDialog_SelectAll;
-
-	// private static final String DESELECT_ALL_TITLE =
-	// Messages.ElementListSelectionDialog_DeselectAll;
+	/**
+	 * Serial version UID for RAP.
+	 */
+	public static final long serialVersionUID = 1L;
 
 	private FilteredList fFilteredList;
 
@@ -163,10 +163,14 @@
 	 */
 	@Override
 	protected void createButtonsForButtonBar(Composite parent) {
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
+		createButton(parent,
+			IDialogConstants.OK_ID,
+			"Ok", //$NON-NLS-1$
 			true);
-		createButton(parent, IDialogConstants.CANCEL_ID,
-			IDialogConstants.CANCEL_LABEL, false);
+		createButton(parent,
+			IDialogConstants.CANCEL_ID,
+			"Cancel", //$NON-NLS-1$
+			false);
 	}
 
 	/*
@@ -751,7 +755,6 @@
 	 * @param parent the parent composite.
 	 * @return returns the filtered list widget.
 	 */
-	@SuppressWarnings("serial")
 	protected FilteredList createFilteredList(Composite parent) {
 		final int flags = SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL
 			| (fIsMultipleSelection ? SWT.MULTI : SWT.SINGLE);
@@ -816,7 +819,6 @@
 
 		text.setText(fFilter == null ? "" : fFilter); //$NON-NLS-1$
 
-		@SuppressWarnings("serial")
 		final Listener listener = new Listener() {
 			public void handleEvent(Event e) {
 				fFilteredList.setFilter(fFilterText.getText());
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/MessageLine.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/MessageLine.java
index b0725cf..190b30e 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/MessageLine.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/MessageLine.java
@@ -36,7 +36,10 @@
  */
 public class MessageLine extends CLabel {
 
-	private static final long serialVersionUID = 1L;
+	/**
+	 * Serial version UID for RAP.
+	 */
+	public static final long serialVersionUID = 1L;
 
 	private final Color fNormalMsgAreaBackground;
 
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/NewRepositoryWizardPageOne.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/NewRepositoryWizardPageOne.java
index 026f4a7..eb344f8 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/NewRepositoryWizardPageOne.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/emfstorebrowser/views/NewRepositoryWizardPageOne.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008-2011 Chair for Applied Software Engineering,
+ * Copyright (c) 2008-2016 Chair for Applied Software Engineering,
  * Technische Universitaet Muenchen.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -41,6 +41,10 @@
  */
 public class NewRepositoryWizardPageOne extends WizardPage {
 
+	/**
+	 * Serial version UID for RAP.
+	 */
+	public static final long serialVersionUID = 1L;
 	private static final int DEFAULT_PORT = 8080;
 	private Text name;
 	private Text url;
@@ -207,7 +211,10 @@
 	 */
 	class SelectionDialogListener implements SelectionListener {
 
-		private static final long serialVersionUID = 1L;
+		/**
+		 * Serial version UID for RAP.
+		 */
+		public static final long serialVersionUID = 1L;
 
 		/**
 		 * @param e
@@ -226,15 +233,7 @@
 		public void widgetSelected(SelectionEvent e) {
 			final CertificateSelectionDialog csd = new CertificateSelectionDialog(
 				Display.getCurrent().getActiveShell(),
-				new LabelProvider() {
-					@Override
-					public String getText(Object element) {
-						if (element instanceof String) {
-							return element.toString();
-						}
-						return StringUtils.EMPTY;
-					}
-				});
+				new CertificateSelectionDialogLabelProvider());
 			ArrayList<String> certificates;
 			try {
 				certificates = KeyStoreManager.getInstance().getCertificates();
@@ -257,4 +256,24 @@
 			}
 		}
 	}
+
+	/**
+	 * {@link LabelProvider} for the certificate selection dialog.
+	 *
+	 */
+	final class CertificateSelectionDialogLabelProvider extends LabelProvider {
+
+		/**
+		 * Serial version UID for RAP.
+		 */
+		public static final long serialVersionUID = 1L;
+
+		@Override
+		public String getText(Object element) {
+			if (element instanceof String) {
+				return element.toString();
+			}
+			return StringUtils.EMPTY;
+		}
+	}
 }
diff --git a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/scm/SCMLabelProvider.java b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/scm/SCMLabelProvider.java
index 28f9ec2..a5802b4 100644
--- a/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/scm/SCMLabelProvider.java
+++ b/bundles/org.eclipse.emf.emfstore.client.ui/src/org/eclipse/emf/emfstore/internal/client/ui/views/scm/SCMLabelProvider.java
@@ -48,6 +48,7 @@
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.graphics.PaletteData;
+import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
 
 /**
@@ -244,37 +245,51 @@
 			initProxy(proxy);
 		}
 		final ImageProxy imageProxy = proxy.getImage();
-		final ImageData imageData = new ImageData(imageProxy.getWidth(),
-			imageProxy.getHeight(),
-			imageProxy.getDepth(),
-			new PaletteData(imageProxy.getRedMask(), imageProxy.getGreenMask(), imageProxy.getBlueMask()),
-			imageProxy.getScanlinePad(),
-			imageProxy.getData());
+		final ImageData imageData = new ImageData(imageProxy.getWidth(), imageProxy.getHeight(), imageProxy.getDepth(),
+			createPaletteData(imageProxy), imageProxy.getScanlinePad(), imageProxy.getData());
 		return imageData;
 	}
 
+	private PaletteData createPaletteData(final ImageProxy imageProxy) {
+		if (imageProxy.isDirect()) {
+			return new PaletteData(imageProxy.getRedMask(), imageProxy.getGreenMask(), imageProxy.getBlueMask());
+		}
+		final RGB[] colors = new RGB[imageProxy.getPaletteColors().length];
+		for (int i = 0; i < imageProxy.getPaletteColors().length; i++) {
+			final ImageProxy.RGB rgb = imageProxy.getPaletteColors()[i];
+			colors[i] = new RGB(rgb.getRed(), rgb.getGreen(), rgb.getBlue());
+		}
+		return new PaletteData(colors);
+	}
+
 	private void initProxy(OperationProxy proxy) {
 		final FileBasedChangePackage changePackage = getChangePackage(proxy);
 		final AbstractOperation operation = changePackage.get(proxy.getIndex());
 		prepareProxy(proxy, operation);
 	}
 
+	private ImageProxy.RGB[] createColorData(RGB[] colors) {
+		ImageProxy.RGB[] result = null;
+		if (colors != null) {
+			result = new ImageProxy.RGB[colors.length];
+			for (int i = 0; i < colors.length; i++) {
+				result[i] = new ImageProxy.RGB(colors[i].red, colors[i].green, colors[i].blue);
+			}
+		}
+		return result;
+	}
+
 	private void prepareProxy(OperationProxy proxy, AbstractOperation operation) {
-		final ImageData imageData = changePackageVisualizationHelper
-			.getImage(adapterFactoryLabelProvider, operation)
+		final ImageData imageData = changePackageVisualizationHelper.getImage(adapterFactoryLabelProvider, operation)
 			.getImageData();
-		final ImageProxy imageProxy = ImageProxy.create()
-			.setWitdh(imageData.width)
-			.setHeight(imageData.height)
-			.setDepth(imageData.depth)
-			.setRedMask(imageData.palette.redMask)
-			.setGreenMask(imageData.palette.greenMask)
-			.setBlueMask(imageData.palette.blueMask)
-			.setScanlinePad(imageData.scanlinePad)
-			.setData(imageData.data);
+		final ImageProxy imageProxy = ImageProxy.create().setWitdh(imageData.width).setHeight(imageData.height)
+			.setDepth(imageData.depth).setRedMask(imageData.palette.redMask).setGreenMask(imageData.palette.greenMask)
+			.setBlueMask(imageData.palette.blueMask).setScanlinePad(imageData.scanlinePad).setData(imageData.data);
+		if (!imageData.palette.isDirect) {
+			imageProxy.setPaletteColors(createColorData(imageData.palette.colors));
+		}
 		proxy.setImage(imageProxy);
-		proxy.setLabel(
-			changePackageVisualizationHelper.getDescription(operation));
+		proxy.setLabel(changePackageVisualizationHelper.getDescription(operation));
 
 		if (CompositeOperation.class.isInstance(operation)) {
 			final CompositeOperation compositeOperation = (CompositeOperation) operation;
diff --git a/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF
index 59407e4..73aeb83 100644
--- a/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.client/META-INF/MANIFEST.MF
@@ -2,39 +2,39 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Client
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.server;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.migration;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.server;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.migration;bundle-version="[1.8.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.emfstore.internal.client.model.Activator
 Import-Package: org.apache.commons.codec.binary;version="1.3.0"
-Export-Package: org.eclipse.emf.emfstore.client;version="1.7.0",org.ec
- lipse.emf.emfstore.client.callbacks;version="1.7.0",org.eclipse.emf.e
- mfstore.client.changetracking;version="1.7.0",org.eclipse.emf.emfstor
- e.client.exceptions;version="1.7.0",org.eclipse.emf.emfstore.client.h
- andler;version="1.7.0",org.eclipse.emf.emfstore.client.observer;versi
- on="1.7.0",org.eclipse.emf.emfstore.client.provider;version="1.7.0",o
- rg.eclipse.emf.emfstore.client.sessionprovider;version="1.7.0",org.ec
- lipse.emf.emfstore.client.util;version="1.7.0",org.eclipse.emf.emfsto
- re.internal.client.accesscontrol;version="1.7.0";x-friends:="org.ecli
+Export-Package: org.eclipse.emf.emfstore.client;version="1.8.0",org.ec
+ lipse.emf.emfstore.client.callbacks;version="1.8.0",org.eclipse.emf.e
+ mfstore.client.changetracking;version="1.8.0",org.eclipse.emf.emfstor
+ e.client.exceptions;version="1.8.0",org.eclipse.emf.emfstore.client.h
+ andler;version="1.8.0",org.eclipse.emf.emfstore.client.observer;versi
+ on="1.8.0",org.eclipse.emf.emfstore.client.provider;version="1.8.0",o
+ rg.eclipse.emf.emfstore.client.sessionprovider;version="1.8.0",org.ec
+ lipse.emf.emfstore.client.util;version="1.8.0",org.eclipse.emf.emfsto
+ re.internal.client.accesscontrol;version="1.8.0";x-friends:="org.ecli
  pse.emf.emfstore.client.ui,org.eclipse.emf.ecp.emfstore.ui",org.eclip
- se.emf.emfstore.internal.client.common;version="1.7.0";x-friends:="or
+ se.emf.emfstore.internal.client.common;version="1.8.0";x-friends:="or
  g.eclipse.emf.emfstore.client.ui",org.eclipse.emf.emfstore.internal.c
- lient.configuration;version="1.7.0"; x-friends:="org.eclipse.emf.emfs
+ lient.configuration;version="1.8.0"; x-friends:="org.eclipse.emf.emfs
  tore.client.ui,  org.eclipse.emf.emfstore.fuzzy.emf.test,  org.eclips
  e.emf.emfstore.server.test,  org.eclipse.emf.ecp.emfstore.core,  org.
  eclipse.emf.emfstore.client.test,  org.eclipse.emf.emfstore.client.te
  st.ui",org.eclipse.emf.emfstore.internal.client.importexport;version=
- "1.7.0";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.
+ "1.8.0";x-friends:="org.eclipse.emf.emfstore.client.test,org.eclipse.
  emf.emfstore.client.ui,org.eclipse.emf.ecp.emfstore.ui",org.eclipse.e
- mf.emfstore.internal.client.importexport.impl;version="1.7.0";x-frien
+ mf.emfstore.internal.client.importexport.impl;version="1.8.0";x-frien
  ds:="org.eclipse.emf.emfstore.client.test,org.eclipse.emf.ecp.emfstor
- e.ui",org.eclipse.emf.emfstore.internal.client.model;version="1.7.0";
+ e.ui",org.eclipse.emf.emfstore.internal.client.model;version="1.8.0";
   x-friends:="org.eclipse.emf.emfstore.client.model.edit,  org.eclipse
  .emf.emfstore.client.test.ui,  org.eclipse.emf.emfstore.client.transa
  ction,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.emfstore
@@ -45,56 +45,56 @@
  .ui.e3,  org.eclipse.emf.emfstore.performance.test,  org.eclipse.emf.
  emfstore.fuzzy.emf,  org.eclipse.emf.emfstore.client.ui.transaction, 
   org.eclipse.emf.emfstore.client.ui.test",org.eclipse.emf.emfstore.in
- ternal.client.model.changeTracking;version="1.7.0";x-internal:=true,o
+ ternal.client.model.changeTracking;version="1.8.0";x-internal:=true,o
  rg.eclipse.emf.emfstore.internal.client.model.changeTracking.commands
- ;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.client.transact
+ ;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.client.transact
  ion,org.eclipse.emf.emfstore.client.test",org.eclipse.emf.emfstore.in
- ternal.client.model.changeTracking.merging;version="1.7.0"; x-friends
+ ternal.client.model.changeTracking.merging;version="1.8.0"; x-friends
  :="org.eclipse.emf.emfstore.client.test,  org.eclipse.emf.emfstore.cl
  ient.ui,  org.eclipse.emf.emfstore.example.merging,  org.eclipse.emf.
  emfstore.test.common",org.eclipse.emf.emfstore.internal.client.model.
- changeTracking.merging.conflict;version="1.7.0";x-friends:="org.eclip
+ changeTracking.merging.conflict;version="1.8.0";x-friends:="org.eclip
  se.emf.emfstore.client.test,org.eclipse.emf.emfstore.client.ui,org.ec
  lipse.emf.emfstore.test.common",org.eclipse.emf.emfstore.internal.cli
- ent.model.changeTracking.merging.conflict.conflicts;version="1.7.0";x
+ ent.model.changeTracking.merging.conflict.conflicts;version="1.8.0";x
  -friends:="org.eclipse.emf.emfstore.client.test",org.eclipse.emf.emfs
  tore.internal.client.model.changeTracking.merging.conflict.options;ve
- rsion="1.7.0";x-friends:="org.eclipse.emf.emfstore.client.ui",org.ecl
+ rsion="1.8.0";x-friends:="org.eclipse.emf.emfstore.client.ui",org.ecl
  ipse.emf.emfstore.internal.client.model.changeTracking.merging.util;v
- ersion="1.7.0";x-friends:="org.eclipse.emf.emfstore.client.ui",org.ec
+ ersion="1.8.0";x-friends:="org.eclipse.emf.emfstore.client.ui",org.ec
  lipse.emf.emfstore.internal.client.model.changeTracking.notification.
- filter;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.inte
- rnal.client.model.changeTracking.notification.recording;version="1.7.
+ filter;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.inte
+ rnal.client.model.changeTracking.notification.recording;version="1.8.
  0";x-friends:="org.eclipse.emf.emfstore.test.common",org.eclipse.emf.
- emfstore.internal.client.model.connectionmanager;version="1.7.0"; x-f
+ emfstore.internal.client.model.connectionmanager;version="1.8.0"; x-f
  riends:="org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.emfstor
  e.example.helloworld,  org.eclipse.emf.emfstore.test.common,  org.ecl
  ipse.emf.emfstore.server.test,  org.eclipse.emf.ecp.emfstore.ui,  org
  .eclipse.emf.emfstore.client.test.ui",org.eclipse.emf.emfstore.intern
- al.client.model.connectionmanager.xmlrpc;version="1.7.0";x-friends:="
+ al.client.model.connectionmanager.xmlrpc;version="1.8.0";x-friends:="
  org.eclipse.emf.emfstore.test.common",org.eclipse.emf.emfstore.intern
- al.client.model.controller;version="1.7.0";x-friends:="org.eclipse.em
+ al.client.model.controller;version="1.8.0";x-friends:="org.eclipse.em
  f.emfstore.client.ui,org.eclipse.emf.emfstore.client.test,org.eclipse
  .emf.emfstore.example.merging",org.eclipse.emf.emfstore.internal.clie
- nt.model.exceptions;version="1.7.0"; x-friends:="org.eclipse.emf.emfs
+ nt.model.exceptions;version="1.8.0"; x-friends:="org.eclipse.emf.emfs
  tore.client.test,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.e
  mf.emfstore.test.common,  org.eclipse.emf.emfstore.client.ui.test",or
  g.eclipse.emf.emfstore.internal.client.model.filetransfer;version="1.
- 7.0";x-friends:="org.eclipse.emf.emfstore.client.test",org.eclipse.em
- f.emfstore.internal.client.model.impl;version="1.7.0"; x-friends:="or
+ 8.0";x-friends:="org.eclipse.emf.emfstore.client.test",org.eclipse.em
+ f.emfstore.internal.client.model.impl;version="1.8.0"; x-friends:="or
  g.eclipse.emf.emfstore.client.test,  org.eclipse.emf.emfstore.client.
  ui,  org.eclipse.emf.emfstore.fuzzy.emf.test,  org.eclipse.emf.emfsto
  re.test.common,  org.eclipse.emf.emfstore.server.test,  org.eclipse.e
  mf.emfstore.client.test.ui,  org.eclipse.emf.ecp.emfstore.core,  org.
  eclipse.emf.ecp.emfstore.ui.e3",org.eclipse.emf.emfstore.internal.cli
- ent.model.impl.api;version="1.7.0"; x-friends:="org.eclipse.emf.emfst
+ ent.model.impl.api;version="1.8.0"; x-friends:="org.eclipse.emf.emfst
  ore.client.ui,  org.eclipse.emf.emfstore.example.merging,  org.eclips
  e.emf.emfstore.fuzzy.emf.test,  org.eclipse.emf.emfstore.server.test,
    org.eclipse.emf.emfstore.test.common,  org.eclipse.emf.emfstore.cli
  ent.test,  org.eclipse.emf.ecp.emfstore.core,  org.eclipse.emf.ecp.em
  fstore.ui,  org.eclipse.emf.ecp.emfstore.ui.e3,  org.eclipse.emf.emfs
  tore.fuzzy.emf,  org.eclipse.emf.emfstore.client.test.ui",org.eclipse
- .emf.emfstore.internal.client.model.util;version="1.7.0"; x-friends:=
+ .emf.emfstore.internal.client.model.util;version="1.8.0"; x-friends:=
  "org.eclipse.emf.emfstore.client.model.edit,  org.eclipse.emf.emfstor
  e.client.transaction,  org.eclipse.emf.emfstore.client.ui,  org.eclip
  se.emf.emfstore.example.merging,  org.eclipse.emf.emfstore.server.tes
@@ -102,10 +102,10 @@
  re.core,  org.eclipse.emf.ecp.emfstore.ui,  org.eclipse.emf.emfstore.
  fuzzy.emf.test,  org.eclipse.emf.emfstore.client.test,  org.eclipse.e
  mf.emfstore.client.test.ui",org.eclipse.emf.emfstore.internal.client.
- observers;version="1.7.0"; x-friends:="org.eclipse.emf.emfstore.clien
+ observers;version="1.8.0"; x-friends:="org.eclipse.emf.emfstore.clien
  t.test,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.ecp.emf
  store.core,  org.eclipse.emf.ecp.emfstore.ui.e3",org.eclipse.emf.emfs
- tore.internal.client.properties;version="1.7.0";x-friends:="org.eclip
+ tore.internal.client.properties;version="1.8.0";x-friends:="org.eclip
  se.emf.emfstore.client.test",org.eclipse.emf.emfstore.internal.client
  .provider;version="1.0.2";x-internal:=true,org.eclipse.emf.emfstore.i
  nternal.client.startup;version="1.0.2";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.client/pom.xml b/bundles/org.eclipse.emf.emfstore.client/pom.xml
index f90a8d6..1d0205b 100644
--- a/bundles/org.eclipse.emf.emfstore.client/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.client/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/ESWorkspaceProviderImpl.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/ESWorkspaceProviderImpl.java
index 2c69a82..8fe2bc6 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/ESWorkspaceProviderImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/ESWorkspaceProviderImpl.java
@@ -20,7 +20,6 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
@@ -65,9 +64,6 @@
 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.common.observer.ObserverBus;
-import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrationException;
-import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrator;
-import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigratorUtil;
 import org.eclipse.emf.emfstore.server.model.ESChangePackage;
 import org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec;
 
@@ -215,6 +211,20 @@
 	}
 
 	/**
+	 * removes a workspace that is no longer needed, this also removes the
+	 * threadlocal reference to the workspace from the calling thread.
+	 *
+	 * @param token
+	 */
+	public static void removeInstance(String token) {
+		if (WorkspaceLocator.hasId(token)) {
+			WorkspaceLocator.removeWorkspaceProviderFor(token);
+		}
+		WS_THREAD_LOCAL.remove();
+
+	}
+
+	/**
 	 * Initialize the Workspace Manager.
 	 */
 	public static synchronized void init() {
@@ -610,32 +620,33 @@
 	}
 
 	private void migrateModelIfNeeded(ResourceSet resourceSet) {
-		// FIXME JF
-		EMFStoreMigrator migrator = null;
-		try {
-			migrator = EMFStoreMigratorUtil.getEMFStoreMigrator();
-		} catch (final EMFStoreMigrationException e2) {
-			WorkspaceUtil.logWarning(e2.getMessage(), null);
-			return;
-		}
+		// FIXME JF: currently we will only support server side migration
 
-		for (final List<URI> curModels : getPhysicalURIsForMigration()) {
-			// TODO logging?
-			if (!migrator.canHandle(curModels)) {
-				return;
-			}
-
-			if (!migrator.needsMigration(curModels)) {
-				return;
-			}
-
-			try {
-				migrator.migrate(curModels, new NullProgressMonitor());
-			} catch (final EMFStoreMigrationException e) {
-				WorkspaceUtil.logException(MessageFormat.format(
-					Messages.ESWorkspaceProviderImpl_Migration_Of_Project_Failed, curModels.get(0)), e);
-			}
-		}
+		// EMFStoreMigrator migrator = null;
+		// try {
+		// migrator = EMFStoreMigratorUtil.getEMFStoreMigrator();
+		// } catch (final EMFStoreMigrationException e2) {
+		// WorkspaceUtil.logWarning(e2.getMessage(), null);
+		// return;
+		// }
+		//
+		// for (final List<URI> curModels : getPhysicalURIsForMigration()) {
+		// // TODO logging?
+		// if (!migrator.canHandle(curModels)) {
+		// return;
+		// }
+		//
+		// if (!migrator.needsMigration(curModels)) {
+		// return;
+		// }
+		//
+		// try {
+		// migrator.migrate(curModels, new NullProgressMonitor());
+		// } catch (final EMFStoreMigrationException e) {
+		// WorkspaceUtil.logException(MessageFormat.format(
+		// Messages.ESWorkspaceProviderImpl_Migration_Of_Project_Failed, curModels.get(0)), e);
+		// }
+		// }
 	}
 
 	private List<List<URI>> getPhysicalURIsForMigration() {
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/WorkspaceLocator.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/WorkspaceLocator.java
index 0c3a4c3..e113d90 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/WorkspaceLocator.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/WorkspaceLocator.java
@@ -42,6 +42,16 @@
 	}
 
 	/**
+	 * Removes a workspace which is no longer needed.
+	 *
+	 * @param token
+	 */
+	public static void removeWorkspaceProviderFor(String workspaceProviderId) {
+		// TODO Auto-generated method stub
+		WORKSPACE_PROVIDER_MAP.remove(workspaceProviderId);
+	}
+
+	/**
 	 * Creates a workspace with a particular ID.
 	 *
 	 * @param workspaceProviderId
@@ -98,4 +108,5 @@
 
 		return createWorkspaceProviderFor(workspaceProviderId);
 	}
+
 }
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/Messages.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/Messages.java
index 134fd30..ee286bd 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/Messages.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/Messages.java
@@ -23,6 +23,7 @@
 
 	private static final String BUNDLE_NAME = "org.eclipse.emf.emfstore.internal.client.model.connectionmanager.xmlrpc.messages"; //$NON-NLS-1$
 	public static String XmlRpcClientManager_Could_Not_Load_Certificate;
+	public static String XmlRpcClientManager_DownloadOfFragmentFailed;
 	public static String XmlRpcClientManager_UploadChangePackageFragmentCallFailed;
 	public static String XmlRpcClientManager_Malformed_URL_Or_Port;
 	public static String XmlRpcClientManager_NoValidSessionAndOrProjectId;
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/XmlRpcClientManager.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/XmlRpcClientManager.java
index e1a55b1..b83ab36 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/XmlRpcClientManager.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/XmlRpcClientManager.java
@@ -11,6 +11,8 @@
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.client.model.connectionmanager.xmlrpc;
 
+import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -211,11 +213,11 @@
 
 		for (int i = 0; i < params.length; i++) {
 			final Object param = params[i];
-			if (AbstractChangePackage.class.isInstance(param) && !ChangePackageProxy.class.isInstance(param)) {
+			if (FileBasedChangePackage.class.isInstance(param) && !ChangePackageProxy.class.isInstance(param)) {
 				params[i] = uploadInFragments(
 					maybeSessionId.get(),
 					maybeProjectId.get(),
-					AbstractChangePackage.class.cast(param));
+					FileBasedChangePackage.class.cast(param));
 			}
 		}
 
@@ -254,17 +256,34 @@
 		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE
 			.createFileBasedChangePackage();
 		changePackage.initialize(FileUtil.createLocationForTemporaryChangePackage());
+		final File file = new File(changePackage.getTempFilePath());
+		FileWriter writer = null;
+		try {
+			writer = new FileWriter(file);
 
-		ChangePackageEnvelope envelope;
-		do {
-			envelope = executeCall("downloadChangePackageFragment", ChangePackageEnvelope.class, new Object[] { //$NON-NLS-1$
-				maybeSession.get(),
+			ChangePackageEnvelope envelope;
+			do {
+				envelope = executeCall("downloadChangePackageFragment", ChangePackageEnvelope.class, new Object[] { //$NON-NLS-1$
+					maybeSession.get(),
 					proxy.getId(),
 					fragmentIndex
-			});
-			changePackage.addAll(envelope.getFragment());
-			fragmentIndex += 1;
-		} while (!envelope.isLast());
+				});
+				for (final String s : envelope.getFragment()) {
+					writer.write(s + System.getProperty("line.separator")); //$NON-NLS-1$
+				}
+				fragmentIndex += 1;
+			} while (!envelope.isLast());
+		} catch (final IOException ex) {
+			throw new ESException(Messages.XmlRpcClientManager_DownloadOfFragmentFailed, ex);
+		} finally {
+			if (writer != null) {
+				try {
+					writer.close();
+				} catch (final IOException ex) {
+					throw new ESException(Messages.XmlRpcClientManager_DownloadOfFragmentFailed, ex);
+				}
+			}
+		}
 
 		try {
 			changePackage.setLogMessage(
@@ -277,8 +296,8 @@
 	}
 
 	private ChangePackageProxy uploadInFragments(SessionId sessionId,
-		ProjectId projectId, AbstractChangePackage changePackage)
-		throws ESException {
+		ProjectId projectId, FileBasedChangePackage changePackage)
+			throws ESException {
 
 		// get() is guarded
 		final Iterator<ChangePackageEnvelope> envelopes = ChangePackageUtil.splitChangePackage(
@@ -291,8 +310,7 @@
 				proxyId = uploadChangePackageFragment(
 					sessionId,
 					projectId,
-					envelopes.next()
-					);
+					envelopes.next());
 			}
 		} catch (final XmlRpcException ex) {
 			throw new ESException(Messages.XmlRpcClientManager_UploadChangePackageFragmentCallFailed, ex);
@@ -327,7 +345,7 @@
 		gzipCompressionEnabled = false;
 		final ESExtensionElement element = new ESExtensionPoint(
 			"org.eclipse.emf.emfstore.common.model.serializationOptions") //$NON-NLS-1$
-			.getFirst();
+				.getFirst();
 
 		if (element != null) {
 			gzipCompressionEnabled = element.getBoolean("GzipCompression"); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/messages.properties b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/messages.properties
index 0e27d52..14e365c 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/messages.properties
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/connectionmanager/xmlrpc/messages.properties
@@ -1,4 +1,5 @@
 XmlRpcClientManager_Could_Not_Load_Certificate=Couldn't load certificate
+XmlRpcClientManager_DownloadOfFragmentFailed=Download of change package fragment failed
 XmlRpcClientManager_UploadChangePackageFragmentCallFailed=Could not create change package fragment.
 XmlRpcClientManager_Malformed_URL_Or_Port=Malformed URL or Port
 XmlRpcClientManager_NoValidSessionAndOrProjectId=Cannot fragment change package without valid session and project ID.
diff --git a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/controller/ShareController.java b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/controller/ShareController.java
index 9b0c881..6e896df 100644
--- a/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/controller/ShareController.java
+++ b/bundles/org.eclipse.emf.emfstore.client/src/org/eclipse/emf/emfstore/internal/client/model/controller/ShareController.java
@@ -80,7 +80,9 @@
 			getProjectSpace().save();
 			getProjectSpace().startChangeRecording();
 			getProgressMonitor().done();
+			return null;
 		}
+
 		getProgressMonitor().subTask(Messages.ShareController_Sharing_Project_With_Server);
 
 		// make sure, current state of caches is written to resource
@@ -115,6 +117,7 @@
 		getProgressMonitor().subTask(Messages.ShareController_Finalizing_Share);
 		getProjectSpace().getLocalChangePackage().clear();
 		getProjectSpace().save();
+		// TODO EM: do we really need to save 3 times in row?!
 		getProjectSpace().updateDirtyState();
 
 		getProgressMonitor().done();
diff --git a/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF
index 6a48c92..cd7de8a 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.common.model.edit/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Common Model Edit
 Bundle-SymbolicName: org.eclipse.emf.emfstore.common.model.edit;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.emfstore.internal.common.model.provider.CommonEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.eclipse.emf.emfstore.internal.common.model.provide
- r;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.server.model.e
+ r;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.server.model.e
  dit,org.eclipse.emf.emfstore.client.model.edit,org.eclipse.emf.emfsto
  re.client.test"
 Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.common.model;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml
index d97f14d..bc59fb4 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.common.model.edit/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.common.model.edit</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF
index b874b41..ebf655e 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.common.model/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Common Model
 Bundle-SymbolicName: org.eclipse.emf.emfstore.common.model;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.common;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.emf.emfstore.common;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.emfstore.common.model;version="1.7.0",
- org.eclipse.emf.emfstore.common.model.util;version="1.7.0",org.eclips
- e.emf.emfstore.internal.common.model;version="1.7.0"; x-friends:="org
+Export-Package: org.eclipse.emf.emfstore.common.model;version="1.8.0",
+ org.eclipse.emf.emfstore.common.model.util;version="1.8.0",org.eclips
+ e.emf.emfstore.internal.common.model;version="1.8.0"; x-friends:="org
  .eclipse.emf.emfstore.client,  org.eclipse.emf.emfstore.client.model.
  edit,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.emfstore.
  common.model.edit,  org.eclipse.emf.emfstore.ecore,  org.eclipse.emf.
@@ -28,14 +28,14 @@
  p.emfstore.core,  org.eclipse.emf.ecp.emfstore.ui.e3,  org.eclipse.em
  f.emfstore.performance.test,  org.eclipse.emf.emfstore.fuzzy.emf,  or
  g.eclipse.emf.emfstore.client.ui.test",org.eclipse.emf.emfstore.inter
- nal.common.model.impl;version="1.7.0"; x-friends:="org.eclipse.emf.em
+ nal.common.model.impl;version="1.8.0"; x-friends:="org.eclipse.emf.em
  fstore.client,  org.eclipse.emf.emfstore.client.changetracking.test, 
   org.eclipse.emf.emfstore.client.recording.test,  org.eclipse.emf.emf
  store.client.ui,  org.eclipse.emf.emfstore.server,  org.eclipse.emf.e
  mfstore.server.model,  org.eclipse.emf.ecp.emfstore.core,  org.eclips
  e.emf.emfstore.client.conflictdetection.test",org.eclipse.emf.emfstor
- e.internal.common.model.impl.util;version="1.7.0";x-internal:=true,or
- g.eclipse.emf.emfstore.internal.common.model.util;version="1.7.0"; x-
+ e.internal.common.model.impl.util;version="1.8.0";x-internal:=true,or
+ g.eclipse.emf.emfstore.internal.common.model.util;version="1.8.0"; x-
  friends:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emfstore.
  client.ui,  org.eclipse.emf.emfstore.common.model.edit,  org.eclipse.
  emf.emfstore.fuzzy.emf.test,  org.eclipse.emf.emfstore.migration,  or
@@ -46,5 +46,6 @@
  ient.recording.test,  org.eclipse.emf.emfstore.client.test,  org.ecli
  pse.emf.emfstore.client.conflictdetection.test,  org.eclipse.emf.ecp.
  emfstore.core,  org.eclipse.emf.emfstore.client.api.test,  org.eclips
- e.emf.emfstore.performance.test"
+ e.emf.emfstore.performance.test,  org.eclipse.emf.emfstore.migration.
+ edapt"
 
diff --git a/bundles/org.eclipse.emf.emfstore.common.model/pom.xml b/bundles/org.eclipse.emf.emfstore.common.model/pom.xml
index a8b1f3c..bb2b2a8 100644
--- a/bundles/org.eclipse.emf.emfstore.common.model/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.common.model/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.common.model</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF
index 551bc87..b0df8ca 100644
--- a/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.common/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Common
 Bundle-SymbolicName: org.eclipse.emf.emfstore.common;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Activator: org.eclipse.emf.emfstore.internal.common.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
@@ -10,13 +10,13 @@
 Bundle-ActivationPolicy: lazy
 Export-Package: com.google.common.base;version="10.0.1",com.google.com
  mon.collect;version="10.0.1",com.google.common.io;version="2.2.0",org
- .apache.commons.io;version="1.7.0",org.apache.commons.io.comparator;v
+ .apache.commons.io;version="1.8.0",org.apache.commons.io.comparator;v
  ersion="2.0.1",org.apache.commons.io.filefilter;version="2.0.1",org.a
  pache.commons.io.input;version="2.0.1",org.apache.commons.io.monitor;
- version="2.0.1",org.apache.commons.io.output;version="1.7.0",org.apac
- he.commons.lang;version="1.7.0",org.eclipse.emf.emfstore.common;versi
- on="1.7.0",org.eclipse.emf.emfstore.common.extensionpoint;version="1.
- 7.0",org.eclipse.emf.emfstore.internal.common;version="1.7.0"; x-frie
+ version="2.0.1",org.apache.commons.io.output;version="1.8.0",org.apac
+ he.commons.lang;version="1.8.0",org.eclipse.emf.emfstore.common;versi
+ on="1.8.0",org.eclipse.emf.emfstore.common.extensionpoint;version="1.
+ 8.0",org.eclipse.emf.emfstore.internal.common;version="1.8.0"; x-frie
  nds:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emfstore.clie
  nt.test.ui,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.emf
  store.common.model,  org.eclipse.emf.emfstore.example.merging,  org.e
@@ -25,7 +25,7 @@
  ient.test.common,  org.eclipse.emf.emfstore.test.common,  org.eclipse
  .emf.emfstore.client.recording.test,  org.eclipse.emf.emfstore.server
  .test,  org.eclipse.emf.emfstore.client.test",org.eclipse.emf.emfstor
- e.internal.common.api;version="1.7.0"; x-friends:="org.eclipse.emf.em
+ e.internal.common.api;version="1.8.0"; x-friends:="org.eclipse.emf.em
  fstore.client,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.
  emfstore.common.model,  org.eclipse.emf.emfstore.ecore,  org.eclipse.
  emf.emfstore.example.merging,  org.eclipse.emf.emfstore.fuzzy.emf.tes
@@ -37,7 +37,7 @@
  ecp.emfstore.ui.e3,  org.eclipse.emf.emfstore.client.api.test,  org.e
  clipse.emf.emfstore.fuzzy.emf,  org.eclipse.emf.emfstore.client.test,
    org.eclipse.emf.emfstore.client.test.ui",org.eclipse.emf.emfstore.i
- nternal.common.observer;version="1.7.0"; x-friends:="org.eclipse.emf.
+ nternal.common.observer;version="1.8.0"; x-friends:="org.eclipse.emf.
  emfstore.client,  org.eclipse.emf.emfstore.client.test.ui,  org.eclip
  se.emf.emfstore.client.ui,  org.eclipse.emf.emfstore.client.recording
  .test,  org.eclipse.emf.emfstore.client.test"
diff --git a/bundles/org.eclipse.emf.emfstore.common/pom.xml b/bundles/org.eclipse.emf.emfstore.common/pom.xml
index 573264b..c5229b0 100644
--- a/bundles/org.eclipse.emf.emfstore.common/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.common/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.common</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF
index b4c771e..20bb0d8 100644
--- a/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.ecore/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore ECore Integration
 Bundle-SymbolicName: org.eclipse.emf.emfstore.ecore;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.emfstore.internal.ecore.Activator
-Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.7.0,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.internal.ecore;version="1.7.0
+Export-Package: org.eclipse.emf.emfstore.internal.ecore;version="1.8.0
  ";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.ecore/pom.xml b/bundles/org.eclipse.emf.emfstore.ecore/pom.xml
index 3c53a99..60a59dc 100644
--- a/bundles/org.eclipse.emf.emfstore.ecore/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.ecore/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.ecore</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
index f9400f0..6f5f1b7 100644
--- a/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Example Hello World
 Bundle-SymbolicName: org.eclipse.emf.emfstore.example.helloworld;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.5.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.5.0,2.0.0)",
@@ -10,4 +10,4 @@
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.emfstore.example.helloworld;version="1
- .7.0"
+ .8.0"
diff --git a/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml b/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml
index e33c9a9..ea282c7 100644
--- a/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.helloworld/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.example.helloworld</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF
index 12e5ae6..41d9c6f 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore example installer
 Bundle-SymbolicName: org.eclipse.emf.emfstore.example.installer;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
index 65c85b7..3db0db4 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Example Hello World
 Bundle-SymbolicName: org.eclipse.emf.emfstore.example.helloworld;singleton:=true
-Bundle-Version: 1.7.0.qualifier
-Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.7.0,2.0.0)",
+Bundle-Version: 1.8.0.qualifier
+Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.example.helloworld;version="1.7.0";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
+Export-Package: org.eclipse.emf.emfstore.example.helloworld;version="1.8.0";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/pom.xml b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/pom.xml
index e33c9a9..ea282c7 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.helloworld/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.example.helloworld</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
index e759c98..2e0a807 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/examples/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Example Merging client
 Bundle-SymbolicName: org.eclipse.emf.emfstore.example.merging;singleton:=true
-Bundle-Version: 1.7.0.qualifier
-Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.7.0,2.0.0)",
+Bundle-Version: 1.8.0.qualifier
+Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.server;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.server;bundle-version="[1.8.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.7.0";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
+Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.8.0";uses:="org.eclipse.emf.emfstore.client,org.eclipse.equinox.app"
diff --git a/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml b/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml
index d7dc4e8..1909edd 100644
--- a/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.installer/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.example.installer</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
index 261e2c8..00c02c2 100644
--- a/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.merging/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Example Merging client
 Bundle-SymbolicName: org.eclipse.emf.emfstore.example.merging;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.7.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.7.0,2.0.0)",
@@ -11,5 +11,5 @@
  org.eclipse.emf.emfstore.server;bundle-version="[1.7.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.7.
+Export-Package: org.eclipse.emf.emfstore.example.merging;version="1.8.
  0"
diff --git a/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml b/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml
index e49316a..a7c4893 100644
--- a/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.merging/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.example.merging</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF
index 8bba587..e6d181f 100644
--- a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Example SessionProvider
 Bundle-SymbolicName: org.eclipse.emf.emfstore.example.sessionprovider;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Activator: org.eclipse.emf.emfstore.exampleclient.Activator
-Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.7.0,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.emfstore.exampleclient;version="1.7.0";x-internal:=true
+Export-Package: org.eclipse.emf.emfstore.exampleclient;version="1.8.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml
index 83d5c65..c1b20bd 100644
--- a/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.example.sessionprovider/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.example.sessionprovider</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF
index 2b2e5f2..a9982c9 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Bowling Example Model Edit
 Bundle-SymbolicName: org.eclipse.emf.emfstore.examplemodel.edit;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.emfstore.bowling.provider.BowlingEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.bowling.provider;version="1.7
+Export-Package: org.eclipse.emf.emfstore.bowling.provider;version="1.8
  .0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml
index 8ecd8a7..ac182e1 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel.edit/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.examplemodel.edit</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF
index ce24177..f6b972e 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.emfstore.examplemodel;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.bowling;version="1.7.0",org.e
- clipse.emf.emfstore.bowling.impl;version="1.7.0",org.eclipse.emf.emfs
- tore.bowling.util;version="1.7.0"
+Export-Package: org.eclipse.emf.emfstore.bowling;version="1.8.0",org.e
+ clipse.emf.emfstore.bowling.impl;version="1.8.0",org.eclipse.emf.emfs
+ tore.bowling.util;version="1.8.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml b/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml
index 92dd397..e57ddc4 100644
--- a/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.examplemodel/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.examplemodel</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml
index 494dcfe..76d2346 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.edit/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml
index a292ee6..50c2c8f 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.editor/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF
index 49949a7..f56c4f8 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/META-INF/MANIFEST.MF
@@ -7,5 +7,5 @@
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.emfstore.fuzzy.emf;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
- org.junit;bundle-version="[4.11.0,5.0.0)"
+ org.junit;bundle-version="[4.10.0,5.0.0)"
 Export-Package: org.eclipse.emf.emfstore.internal.fuzzy.emf.example;version="2.0.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml
index aa61b50..b48bcc9 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf.example/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml b/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml
index 03d1ed2..7d68ecb 100644
--- a/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.fuzzy.emf/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.checkstyle b/bundles/org.eclipse.emf.emfstore.migration.edapt/.checkstyle
new file mode 100644
index 0000000..9f196dc
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESM Checkstyle" location="/EMFStoreDeveloper/checkstyle/esmCheckstyle.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="all Java Files" enabled="true" check-config-name="ESM Checkstyle" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.classpath b/bundles/org.eclipse.emf.emfstore.migration.edapt/.classpath
new file mode 100644
index 0000000..64c5e31
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.project b/bundles/org.eclipse.emf.emfstore.migration.edapt/.project
new file mode 100644
index 0000000..0440610
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.emfstore.migration.edapt</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.core.runtime.prefs
similarity index 99%
rename from features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.runtime.prefs
rename to bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.core.runtime.prefs
index c522e1f..5a0ad22 100644
--- a/features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.runtime.prefs
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.core.runtime.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-line.separator=\n
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c3dffe
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,418 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8d55df1
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,115 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.migration.edapt/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..57f6aa5
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMFStore Edapt Migration
+Bundle-SymbolicName: org.eclipse.emf.emfstore.migration.edapt;singleton:=true
+Bundle-Version: 1.8.0.qualifier
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.eclipse.emf.emfstore.migration;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.edapt.migration;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emf.edapt.history;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)"
+Export-Package: org.eclipse.emf.emfstore.internal.migration.edapt;vers
+ ion="1.8.0";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/about.html b/bundles/org.eclipse.emf.emfstore.migration.edapt/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2007</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/build.properties b/bundles/org.eclipse.emf.emfstore.migration.edapt/build.properties
new file mode 100644
index 0000000..101ae79
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               plugin.xml
+src.includes = about.html
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/plugin.xml b/bundles/org.eclipse.emf.emfstore.migration.edapt/plugin.xml
new file mode 100644
index 0000000..eafcc6b
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.emf.emfstore.migration.migrator">
+      <Migrator
+            migratorClass="org.eclipse.emf.emfstore.internal.migration.edapt.EdaptMigrator">
+      </Migrator>
+   </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/pom.xml b/bundles/org.eclipse.emf.emfstore.migration.edapt/pom.xml
new file mode 100644
index 0000000..f07f140
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.emf.emfstore</groupId>
+    <artifactId>emfstore-bundles-parent</artifactId>
+    <version>1.8.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.emfstore</groupId>
+  <artifactId>org.eclipse.emf.emfstore.migration.edapt</artifactId>
+  <version>1.8.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emf.emfstore.migration.edapt/src/org/eclipse/emf/emfstore/internal/migration/edapt/EdaptMigrator.java b/bundles/org.eclipse.emf.emfstore.migration.edapt/src/org/eclipse/emf/emfstore/internal/migration/edapt/EdaptMigrator.java
new file mode 100644
index 0000000..c659488
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.migration.edapt/src/org/eclipse/emf/emfstore/internal/migration/edapt/EdaptMigrator.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.migration.edapt;
+
+import java.text.MessageFormat;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.edapt.migration.MigrationException;
+import org.eclipse.emf.edapt.migration.ReleaseUtils;
+import org.eclipse.emf.edapt.migration.execution.Migrator;
+import org.eclipse.emf.edapt.migration.execution.MigratorRegistry;
+import org.eclipse.emf.edapt.spi.history.Release;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
+import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrationException;
+import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrator;
+
+/**
+ * {@link EMFStoreMigrator} using Edapt.
+ *
+ * @author Johannes Faltermeier
+ *
+ */
+public class EdaptMigrator implements EMFStoreMigrator {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrator#canHandle(java.util.Set)
+	 */
+	public Set<URI> canHandle(Set<URI> uris) {
+		final Set<URI> result = new LinkedHashSet<URI>();
+		for (final URI uri : uris) {
+			if (uri.isFile()) {
+				continue;
+			}
+			result.add(uri);
+		}
+		return result;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrator#needsMigration(java.util.Set)
+	 */
+	public Set<URI> needsMigration(Set<URI> uris) {
+		final Set<URI> result = new LinkedHashSet<URI>();
+
+		final Map<Set<String>, Boolean> nsURIsToMigrationStateMap = new LinkedHashMap<Set<String>, Boolean>();
+		for (final URI uri : uris) {
+			final Set<String> nsURIs = ReleaseUtils.getAllNamespaceURIsFromPrefixes(uri);
+			if (nsURIs.isEmpty()) {
+				continue;
+			}
+
+			if (nsURIsToMigrationStateMap.containsKey(nsURIs)) {
+				if (nsURIsToMigrationStateMap.get(nsURIs)) {
+					result.add(uri);
+				}
+				continue;
+			}
+
+			final Migrator migrator = getMigrator(nsURIs);
+			if (migrator == null) {
+				nsURIsToMigrationStateMap.put(nsURIs, false);
+				continue;
+			}
+			final Set<Release> releases = migrator.getRelease(nsURIs);
+			final Release newestRelease = getNewestRelease(releases);
+			final boolean migrationNeeded = !newestRelease.isLatestRelease();
+			nsURIsToMigrationStateMap.put(nsURIs, migrationNeeded);
+			if (migrationNeeded) {
+				result.add(uri);
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * Returns a {@link Migrator} which can handle the given namespace URIs.
+	 *
+	 * @param nameSpaceURIs the uris
+	 * @return the {@link Migrator} or null if non was found
+	 */
+	static Migrator getMigrator(Set<String> nameSpaceURIs) {
+		Migrator migrator = null;
+		for (final String nsURI : nameSpaceURIs) {
+			final Migrator candidate = MigratorRegistry.getInstance().getMigrator(nsURI);
+			if (candidate == null) {
+				continue;
+			}
+			if (migrator == null) {
+				migrator = candidate;
+				continue;
+			}
+			if (migrator != candidate) {
+				/* multiple migrators found */
+				ModelUtil.logWarning(MessageFormat
+					.format("For the given name-space URIs {0} multiple Edapt Migrators were found.", nameSpaceURIs)); //$NON-NLS-1$
+				return null;
+			}
+		}
+		return migrator;
+	}
+
+	/**
+	 * Returns the newest Release from the given set. It is expected that all releases are from the same history.
+	 *
+	 * @param releases the releases
+	 * @return the newest release
+	 */
+	static Release getNewestRelease(Set<Release> releases) {
+		Release sourceRelease = null;
+		for (final Release release : releases) {
+			if (sourceRelease == null) {
+				sourceRelease = release;
+				continue;
+			}
+			if (release.getNumber() > sourceRelease.getNumber()) {
+				sourceRelease = release;
+			}
+		}
+		return sourceRelease;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrator#migrate(java.util.Set,
+	 *      org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	public void migrate(Set<URI> resources, IProgressMonitor monitor) throws EMFStoreMigrationException {
+		monitor.beginTask("Migrating resources", resources.size()); //$NON-NLS-1$
+		for (final URI uri : resources) {
+			final Set<String> nsURIs = ReleaseUtils.getAllNamespaceURIsFromPrefixes(uri);
+			final Migrator migrator = getMigrator(nsURIs);
+			final Set<Release> releases = migrator.getRelease(nsURIs);
+			final Release sourceRelease = getNewestRelease(releases);
+			try {
+				migrator.migrateAndSave(Collections.singletonList(uri), sourceRelease, null, monitor,
+					getResourceSaveOptions());
+				ModelUtil.logInfo(MessageFormat.format("Migrating file with URI {0} successfull.", uri)); //$NON-NLS-1$
+			} catch (final MigrationException ex) {
+				ModelUtil.logInfo(MessageFormat.format("Migrating file with URI {0} failed.", uri)); //$NON-NLS-1$
+				throw new EMFStoreMigrationException("Exception during migration", ex); //$NON-NLS-1$
+			}
+			monitor.worked(1);
+		}
+	}
+
+	private static Map<String, Object> getResourceSaveOptions() {
+		final Map<String, Object> result = new LinkedHashMap<String, Object>();
+		final Map<Object, Object> resourceSaveOptions = ModelUtil.getResourceSaveOptions();
+		for (final Object key : resourceSaveOptions.keySet()) {
+			if (!String.class.isInstance(key)) {
+				continue;
+			}
+			result.put((String) key, resourceSaveOptions.get(key));
+		}
+		return result;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF
index c5f8d30..af8a034 100644
--- a/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.migration/META-INF/MANIFEST.MF
@@ -2,13 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Migration
 Bundle-SymbolicName: org.eclipse.emf.emfstore.migration;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.7.0,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.emf.emfstore.internal.migration;version="1
- .7.0"; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.
- emfstore.server";uses:="org.eclipse.core.runtime"
+ .8.0"; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.
+ emfstore.server,  org.eclipse.emf.emfstore.migration.edapt";uses:="or
+ g.eclipse.core.runtime"
diff --git a/bundles/org.eclipse.emf.emfstore.migration/pom.xml b/bundles/org.eclipse.emf.emfstore.migration/pom.xml
index cbc5e9c..371ee6b 100644
--- a/bundles/org.eclipse.emf.emfstore.migration/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.migration/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.migration</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.migration/src/org/eclipse/emf/emfstore/internal/migration/EMFStoreMigrator.java b/bundles/org.eclipse.emf.emfstore.migration/src/org/eclipse/emf/emfstore/internal/migration/EMFStoreMigrator.java
index ede5ca6..95f074b 100644
--- a/bundles/org.eclipse.emf.emfstore.migration/src/org/eclipse/emf/emfstore/internal/migration/EMFStoreMigrator.java
+++ b/bundles/org.eclipse.emf.emfstore.migration/src/org/eclipse/emf/emfstore/internal/migration/EMFStoreMigrator.java
@@ -12,7 +12,7 @@
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.migration;
 
-import java.util.List;
+import java.util.Set;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.emf.common.util.URI;
@@ -32,17 +32,17 @@
 	 * Checks if this migrator can work with the specified URIs.
 	 *
 	 * @param uris the physical URIs
-	 * @return true if migrator can handle the URI, false otherwise
+	 * @return a set of URIs which <b>cannot</b> be handled. The set is empty of all uris may be handled
 	 */
-	boolean canHandle(List<URI> uris);
+	Set<URI> canHandle(Set<URI> uris);
 
 	/**
 	 * Checks whether the models in the specified URIs need a to be migrated.
 	 *
 	 * @param uris the physical URIs
-	 * @return true if migration is needed, false otherwise
+	 * @return the URIs which <b>need</b> to be migrated. The set is empty if no URIs need to be migrated
 	 */
-	boolean needsMigration(List<URI> uris);
+	Set<URI> needsMigration(Set<URI> uris);
 
 	/**
 	 * Migrate the models in the given URIs from the given source version to the most recent version.
@@ -52,7 +52,7 @@
 	 *
 	 * @throws EMFStoreMigrationException if the migration fails.
 	 */
-	void migrate(List<URI> resources, IProgressMonitor monitor)
+	void migrate(Set<URI> resources, IProgressMonitor monitor)
 		throws EMFStoreMigrationException;
 
 }
diff --git a/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml b/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml
index 8c2b84d..4ced22e 100644
--- a/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.modelmutator/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/bundles/org.eclipse.emf.emfstore.mongodb.client/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.mongodb.client/META-INF/MANIFEST.MF
index 247074b..51a17dd 100644
--- a/bundles/org.eclipse.emf.emfstore.mongodb.client/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.mongodb.client/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore mongoDB Client
 Bundle-SymbolicName: org.eclipse.emf.emfstore.mongodb.client;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)",
  org.eclipselabs.mongo;bundle-version="[0.7.1,1.0.0)",
  org.eclipselabs.mongo.emf.ext;bundle-version="[0.7.1,1.0.0)",
- org.eclipse.emf.emfstore.mongodb;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.mongodb;bundle-version="[1.8.0,2.0.0)"
 Import-Package: org.osgi.service.cm;version="0.0.0"
 Service-Component: OSGI-INF/config.xml,
  OSGI-INF/provider.xml
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.emfstore.mongodb.client;version="1.7.0
+Export-Package: org.eclipse.emf.emfstore.mongodb.client;version="1.8.0
  ";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.mongodb.client/pom.xml b/bundles/org.eclipse.emf.emfstore.mongodb.client/pom.xml
index 283830e..72cb164 100644
--- a/bundles/org.eclipse.emf.emfstore.mongodb.client/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.mongodb.client/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.mongodb.client</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.mongodb.server/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.mongodb.server/META-INF/MANIFEST.MF
index d432835..610f2eb 100644
--- a/bundles/org.eclipse.emf.emfstore.mongodb.server/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.mongodb.server/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore mongoDB Server
 Bundle-SymbolicName: org.eclipse.emf.emfstore.mongodb.server;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipselabs.mongo;bundle-version="[0.7.1,1.0.0)",
  org.eclipselabs.mongo.emf.ext;bundle-version="[0.7.1,1.0.0)",
- org.eclipse.emf.emfstore.mongodb;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.server;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.mongodb;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.server;bundle-version="[1.8.0,2.0.0)"
 Import-Package: org.osgi.service.cm;version="0.0.0"
 Service-Component: OSGI-INF/config.xml,
  OSGI-INF/provider.xml
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.emfstore.mongodb.server;version="1.7.0
+Export-Package: org.eclipse.emf.emfstore.mongodb.server;version="1.8.0
  ";x-internal:=true
diff --git a/bundles/org.eclipse.emf.emfstore.mongodb.server/pom.xml b/bundles/org.eclipse.emf.emfstore.mongodb.server/pom.xml
index ce3879f..bcefd01 100644
--- a/bundles/org.eclipse.emf.emfstore.mongodb.server/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.mongodb.server/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.mongodb.server</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.mongodb/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.mongodb/META-INF/MANIFEST.MF
index ecda6b4..ce188a1 100644
--- a/bundles/org.eclipse.emf.emfstore.mongodb/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.mongodb/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore mongoDB
 Bundle-SymbolicName: org.eclipse.emf.emfstore.mongodb;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipselabs.mongo;bundle-version="[0.7.1,1.0.0)",
  org.eclipselabs.mongo.emf.ext;bundle-version="[0.7.1,1.0.0)",
- org.eclipse.emf.emfstore.common;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.common.model;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.server;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.common;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.server;bundle-version="[1.8.0,2.0.0)"
 Import-Package: org.osgi.service.cm;version="0.0.0"
 Service-Component: OSGI-INF/config.xml,
  OSGI-INF/provider.xml
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.emfstore.mongodb;version="1.7.0";x-fri
+Export-Package: org.eclipse.emf.emfstore.mongodb;version="1.8.0";x-fri
  ends:="org.eclipse.emf.emfstore.mongodb.client,org.eclipse.emf.emfsto
  re.mongodb.server"
diff --git a/bundles/org.eclipse.emf.emfstore.mongodb/pom.xml b/bundles/org.eclipse.emf.emfstore.mongodb/pom.xml
index 13deb2a..6142428 100644
--- a/bundles/org.eclipse.emf.emfstore.mongodb/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.mongodb/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.mongodb</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF
index 416185c..0ea6062 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.server.model.edit/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Model Edit
 Bundle-SymbolicName: org.eclipse.emf.emfstore.server.model.edit;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.emfstore.internal.server.model.provider.ServerEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.eclipse.emf.emfstore.internal.server.model.accessc
- ontrol.provider;version="1.7.0";x-internal:=true,org.eclipse.emf.emfs
- tore.internal.server.model.accesscontrol.roles.provider;version="1.7.
+ ontrol.provider;version="1.8.0";x-internal:=true,org.eclipse.emf.emfs
+ tore.internal.server.model.accesscontrol.roles.provider;version="1.8.
  0";x-internal:=true,org.eclipse.emf.emfstore.internal.server.model.pr
- ovider;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.client.mo
+ ovider;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.client.mo
  del.edit,org.eclipse.emf.emfstore.client.test",org.eclipse.emf.emfsto
- re.internal.server.model.url.provider;version="1.7.0";x-internal:=tru
+ re.internal.server.model.url.provider;version="1.8.0";x-internal:=tru
  e,org.eclipse.emf.emfstore.internal.server.model.versioning.events.pr
- ovider;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.inte
- rnal.server.model.versioning.events.server.provider;version="1.7.0";x
+ ovider;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.inte
+ rnal.server.model.versioning.events.server.provider;version="1.8.0";x
  -internal:=true,org.eclipse.emf.emfstore.internal.server.model.versio
- ning.operations.provider;version="1.7.0";x-friends:="org.eclipse.emf.
+ ning.operations.provider;version="1.8.0";x-friends:="org.eclipse.emf.
  emfstore.client.ui",org.eclipse.emf.emfstore.internal.server.model.ve
- rsioning.operations.semantic.provider;version="1.7.0";x-internal:=tru
+ rsioning.operations.semantic.provider;version="1.8.0";x-internal:=tru
  e,org.eclipse.emf.emfstore.internal.server.model.versioning.provider;
- version="1.7.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.emfstore.server.model;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.7.0,2.0.0)",
+ version="1.8.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.emfstore.server.model;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml b/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml
index 8aa1f60..bc94855 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.server.model.edit/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.server.model.edit</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.server.model.edit/src/org/eclipse/emf/emfstore/internal/server/model/versioning/provider/ChangePackageEnvelopeItemProvider.java b/bundles/org.eclipse.emf.emfstore.server.model.edit/src/org/eclipse/emf/emfstore/internal/server/model/versioning/provider/ChangePackageEnvelopeItemProvider.java
index 382b791..9c948ea 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model.edit/src/org/eclipse/emf/emfstore/internal/server/model/versioning/provider/ChangePackageEnvelopeItemProvider.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model.edit/src/org/eclipse/emf/emfstore/internal/server/model/versioning/provider/ChangePackageEnvelopeItemProvider.java
@@ -23,7 +23,6 @@
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
@@ -31,7 +30,6 @@
 import org.eclipse.emf.emfstore.internal.server.model.provider.ServerEditPlugin;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningPackage;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.OperationsFactory;
 
 /**
  * This is the item provider adapter for a
@@ -42,7 +40,7 @@
  * @generated
  */
 public class ChangePackageEnvelopeItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
-	IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+	ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
 
 	/**
 	 * This constructs an instance from a factory and a notifier.
@@ -204,35 +202,7 @@
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createCompositeOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createCreateDeleteOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createAttributeOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createMultiAttributeOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createMultiAttributeSetOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createMultiAttributeMoveOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createSingleReferenceOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createMultiReferenceSetOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createMultiReferenceOperation()));
-
-		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT,
-			OperationsFactory.eINSTANCE.createMultiReferenceMoveOperation()));
+		newChildDescriptors.add(createChildParameter(VersioningPackage.Literals.CHANGE_PACKAGE_ENVELOPE__FRAGMENT, "")); //$NON-NLS-1$
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF
index 66ac3b6..fe1740b 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.server.model/META-INF/MANIFEST.MF
@@ -2,62 +2,62 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Server Model
 Bundle-SymbolicName: org.eclipse.emf.emfstore.server.model;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.eclipse.emf.emfstore.internal.server.model;version
- ="1.7.0"; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.e
+ ="1.8.0"; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.e
  mf.emfstore.client.model.edit,  org.eclipse.emf.emfstore.client.test.
  common,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.emfstor
  e.server,  org.eclipse.emf.emfstore.server.model.edit,  org.eclipse.e
  mf.emfstore.test.common,  org.eclipse.emf.emfstore.server.test",org.e
- clipse.emf.emfstore.internal.server.model.accesscontrol;version="1.7.
+ clipse.emf.emfstore.internal.server.model.accesscontrol;version="1.8.
  0"; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emf
  store.client.model.edit,  org.eclipse.emf.emfstore.client.ui,  org.ec
  lipse.emf.emfstore.server,  org.eclipse.emf.emfstore.server.model.edi
  t,  org.eclipse.emf.emfstore.server.test,  org.eclipse.emf.emfstore.c
  lient.test.common,  org.eclipse.emf.emfstore.test.common",org.eclipse
- .emf.emfstore.internal.server.model.accesscontrol.impl;version="1.7.0
+ .emf.emfstore.internal.server.model.accesscontrol.impl;version="1.8.0
  ";x-friends:="org.eclipse.emf.emfstore.server",org.eclipse.emf.emfsto
- re.internal.server.model.accesscontrol.roles;version="1.7.0"; x-frien
+ re.internal.server.model.accesscontrol.roles;version="1.8.0"; x-frien
  ds:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emfstore.clien
  t.ui,  org.eclipse.emf.emfstore.server,  org.eclipse.emf.emfstore.ser
  ver.model.edit,  org.eclipse.emf.emfstore.server.test,  org.eclipse.e
  mf.emfstore.test.common",org.eclipse.emf.emfstore.internal.server.mod
- el.accesscontrol.roles.impl;version="1.7.0";x-friends:="org.eclipse.e
+ el.accesscontrol.roles.impl;version="1.8.0";x-friends:="org.eclipse.e
  mf.emfstore.server",org.eclipse.emf.emfstore.internal.server.model.ac
- cesscontrol.roles.util;version="1.7.0";x-friends:="org.eclipse.emf.em
+ cesscontrol.roles.util;version="1.8.0";x-friends:="org.eclipse.emf.em
  fstore.server,org.eclipse.emf.emfstore.server.model.edit",org.eclipse
- .emf.emfstore.internal.server.model.accesscontrol.util;version="1.7.0
+ .emf.emfstore.internal.server.model.accesscontrol.util;version="1.8.0
  ";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstor
  e.server.model.edit",org.eclipse.emf.emfstore.internal.server.model.d
- ao;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.server,org.ec
+ ao;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.server,org.ec
  lipse.emf.emfstore.test.common",org.eclipse.emf.emfstore.internal.ser
- ver.model.impl;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.s
+ ver.model.impl;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.s
  erver,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.test.c
  ommon",org.eclipse.emf.emfstore.internal.server.model.impl.api;versio
- n="1.7.0"; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.
+ n="1.8.0"; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.
  emf.emfstore.client.ui,  org.eclipse.emf.emfstore.test.common,  org.e
  clipse.emf.emfstore.server.test,  org.eclipse.emf.emfstore.server",or
  g.eclipse.emf.emfstore.internal.server.model.impl.api.query;version="
- 1.7.0";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf
+ 1.8.0";x-friends:="org.eclipse.emf.emfstore.client.ui,org.eclipse.emf
  .emfstore.client,org.eclipse.emf.emfstore.client.test",org.eclipse.em
- f.emfstore.internal.server.model.impl.api.versionspec;version="1.7.0"
+ f.emfstore.internal.server.model.impl.api.versionspec;version="1.8.0"
  ; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emfst
  ore.client.ui,  org.eclipse.emf.emfstore.server.test,  org.eclipse.em
  f.emfstore.test.common,  org.eclipse.emf.emfstore.client.api.test",or
- g.eclipse.emf.emfstore.internal.server.model.url;version="1.7.0";x-fr
+ g.eclipse.emf.emfstore.internal.server.model.url;version="1.8.0";x-fr
  iends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.clie
  nt,org.eclipse.emf.emfstore.server.model.edit",org.eclipse.emf.emfsto
- re.internal.server.model.url.impl;version="1.7.0";x-friends:="org.ecl
+ re.internal.server.model.url.impl;version="1.8.0";x-friends:="org.ecl
  ipse.emf.emfstore.server",org.eclipse.emf.emfstore.internal.server.mo
- del.url.util;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.ser
+ del.url.util;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.ser
  ver,org.eclipse.emf.emfstore.server.model.edit",org.eclipse.emf.emfst
- ore.internal.server.model.util;version="1.7.0";x-friends:="org.eclips
+ ore.internal.server.model.util;version="1.8.0";x-friends:="org.eclips
  e.emf.emfstore.server,org.eclipse.emf.emfstore.server.model.edit",org
- .eclipse.emf.emfstore.internal.server.model.versioning;version="1.7.0
+ .eclipse.emf.emfstore.internal.server.model.versioning;version="1.8.0
  "; x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emfs
  tore.client.model.edit,  org.eclipse.emf.emfstore.client.ui,  org.ecl
  ipse.emf.emfstore.example.merging,  org.eclipse.emf.emfstore.fuzzy.em
@@ -67,25 +67,25 @@
  .test,  org.eclipse.emf.emfstore.client.conflictdetection.test,  org.
  eclipse.emf.emfstore.client.changetracking.test,  org.eclipse.emf.emf
  store.client.test",org.eclipse.emf.emfstore.internal.server.model.ver
- sioning.events;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.s
+ sioning.events;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.s
  erver,org.eclipse.emf.emfstore.server.model.edit",org.eclipse.emf.emf
- store.internal.server.model.versioning.events.impl;version="1.7.0";x-
+ store.internal.server.model.versioning.events.impl;version="1.8.0";x-
  friends:="org.eclipse.emf.emfstore.server",org.eclipse.emf.emfstore.i
- nternal.server.model.versioning.events.server;version="1.7.0";x-frien
+ nternal.server.model.versioning.events.server;version="1.8.0";x-frien
  ds:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.
  model.edit",org.eclipse.emf.emfstore.internal.server.model.versioning
- .events.server.impl;version="1.7.0";x-friends:="org.eclipse.emf.emfst
+ .events.server.impl;version="1.8.0";x-friends:="org.eclipse.emf.emfst
  ore.server",org.eclipse.emf.emfstore.internal.server.model.versioning
- .events.server.util;version="1.7.0";x-friends:="org.eclipse.emf.emfst
+ .events.server.util;version="1.8.0";x-friends:="org.eclipse.emf.emfst
  ore.server,org.eclipse.emf.emfstore.server.model.edit",org.eclipse.em
- f.emfstore.internal.server.model.versioning.events.util;version="1.7.
+ f.emfstore.internal.server.model.versioning.events.util;version="1.8.
  0";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf.emfsto
  re.server.model.edit",org.eclipse.emf.emfstore.internal.server.model.
- versioning.impl;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.
+ versioning.impl;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.
  server,org.eclipse.emf.emfstore.client",org.eclipse.emf.emfstore.inte
- rnal.server.model.versioning.impl.persistent;version="1.7.0";x-friend
+ rnal.server.model.versioning.impl.persistent;version="1.8.0";x-friend
  s:="org.eclipse.emf.emfstore.client",org.eclipse.emf.emfstore.interna
- l.server.model.versioning.operations;version="1.7.0"; x-friends:="org
+ l.server.model.versioning.operations;version="1.8.0"; x-friends:="org
  .eclipse.emf.emfstore.client,  org.eclipse.emf.emfstore.client.change
  tracking.test,  org.eclipse.emf.emfstore.client.conflictdetection.tes
  t,  org.eclipse.emf.emfstore.client.model.edit,  org.eclipse.emf.emfs
@@ -96,34 +96,34 @@
  mf.ecp.emfstore.ui.e3,  org.eclipse.emf.emfstore.server.test,  org.ec
  lipse.emf.emfstore.fuzzy.emf.test,  org.eclipse.emf.emfstore.client.t
  est,  org.eclipse.emf.emfstore.client.ui.test",org.eclipse.emf.emfsto
- re.internal.server.model.versioning.operations.impl;version="1.7.0";x
+ re.internal.server.model.versioning.operations.impl;version="1.8.0";x
  -friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.s
  erver,org.eclipse.emf.emfstore.client.recording.test",org.eclipse.emf
  .emfstore.internal.server.model.versioning.operations.semantic;versio
- n="1.7.0";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf
+ n="1.8.0";x-friends:="org.eclipse.emf.emfstore.server,org.eclipse.emf
  .emfstore.client,org.eclipse.emf.emfstore.server.model.edit",org.ecli
  pse.emf.emfstore.internal.server.model.versioning.operations.semantic
- .impl;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.server",or
+ .impl;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.server",or
  g.eclipse.emf.emfstore.internal.server.model.versioning.operations.se
- mantic.util;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.serv
+ mantic.util;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.serv
  er,org.eclipse.emf.emfstore.server.model.edit",org.eclipse.emf.emfsto
- re.internal.server.model.versioning.operations.util;version="1.7.0"; 
+ re.internal.server.model.versioning.operations.util;version="1.8.0"; 
  x-friends:="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emfstor
  e.client.ui,  org.eclipse.emf.emfstore.server,  org.eclipse.emf.emfst
  ore.server.model.edit,  org.eclipse.emf.emfstore.client.test.common, 
   org.eclipse.emf.emfstore.client.recording.test,  org.eclipse.emf.emf
  store.test.common,  org.eclipse.emf.emfstore.client.changetracking.te
  st,  org.eclipse.emf.emfstore.client.test",org.eclipse.emf.emfstore.i
- nternal.server.model.versioning.util;version="1.7.0"; x-friends:="org
+ nternal.server.model.versioning.util;version="1.8.0"; x-friends:="org
  .eclipse.emf.emfstore.server,  org.eclipse.emf.emfstore.client.test, 
   org.eclipse.emf.emfstore.server.model.edit,  org.eclipse.emf.emfstor
- e.client.ui",org.eclipse.emf.emfstore.server;version="1.7.0",org.ecli
- pse.emf.emfstore.server.model;version="1.7.0",org.eclipse.emf.emfstor
- e.server.model.query;version="1.7.0",org.eclipse.emf.emfstore.server.
- model.versionspec;version="1.7.0"
-Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+ e.client.ui",org.eclipse.emf.emfstore.server;version="1.8.0",org.ecli
+ pse.emf.emfstore.server.model;version="1.8.0",org.eclipse.emf.emfstor
+ e.server.model.query;version="1.8.0",org.eclipse.emf.emfstore.server.
+ model.versionspec;version="1.8.0"
+Require-Bundle: org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.common;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.common;bundle-version="[1.8.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/model/server.ecore b/bundles/org.eclipse.emf.emfstore.server.model/model/server.ecore
index b638d88..7d81f67 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/model/server.ecore
+++ b/bundles/org.eclipse.emf.emfstore.server.model/model/server.ecore
@@ -194,8 +194,8 @@
           eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="fragmentCount" lowerBound="1"
           eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-      <eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
-          eType="#//versioning/operations/AbstractOperation" containment="true"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="fragment" unique="false"
+          upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="ChangePackageProxy" eSuperTypes="#//versioning/AbstractChangePackage">
       <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/model/server.genmodel b/bundles/org.eclipse.emf.emfstore.server.model/model/server.genmodel
index e6c8fce..f4c9ac7 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/model/server.genmodel
+++ b/bundles/org.eclipse.emf.emfstore.server.model/model/server.genmodel
@@ -152,7 +152,7 @@
       <genClasses ecoreClass="server.ecore#//versioning/ChangePackageEnvelope">
         <genFeatures createChild="false" ecoreFeature="ecore:EAttribute server.ecore#//versioning/ChangePackageEnvelope/fragmentIndex"/>
         <genFeatures createChild="false" ecoreFeature="ecore:EAttribute server.ecore#//versioning/ChangePackageEnvelope/fragmentCount"/>
-        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference server.ecore#//versioning/ChangePackageEnvelope/fragment"/>
+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute server.ecore#//versioning/ChangePackageEnvelope/fragment"/>
       </genClasses>
       <genClasses ecoreClass="server.ecore#//versioning/ChangePackageProxy">
         <genFeatures createChild="false" ecoreFeature="ecore:EAttribute server.ecore#//versioning/ChangePackageProxy/id"/>
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/pom.xml b/bundles/org.eclipse.emf.emfstore.server.model/pom.xml
index adafc3a..7003c0b 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.server.model/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.server.model</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ChangePackageEnvelope.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ChangePackageEnvelope.java
index eafe5c6..e98b039 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ChangePackageEnvelope.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ChangePackageEnvelope.java
@@ -13,7 +13,6 @@
 
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
 
 /**
  * <!-- begin-user-doc -->
@@ -22,15 +21,15 @@
  *
  * <p>
  * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragmentIndex <em>
- * Fragment Index</em>}</li>
- * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragmentCount <em>
- * Fragment Count</em>}</li>
- * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragment <em>Fragment
- * </em>}</li>
- * </ul>
  * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragmentIndex
+ * <em>Fragment Index</em>}</li>
+ * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragmentCount
+ * <em>Fragment Count</em>}</li>
+ * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragment
+ * <em>Fragment</em>}</li>
+ * </ul>
  *
  * @see org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningPackage#getChangePackageEnvelope()
  * @model
@@ -98,9 +97,8 @@
 	void setFragmentCount(int value);
 
 	/**
-	 * Returns the value of the '<em><b>Fragment</b></em>' containment reference list.
-	 * The list contents are of type
-	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation}.
+	 * Returns the value of the '<em><b>Fragment</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Fragment</em>' containment reference isn't clear, there really should be more of a
@@ -108,12 +106,12 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 *
-	 * @return the value of the '<em>Fragment</em>' containment reference list.
+	 * @return the value of the '<em>Fragment</em>' attribute list.
 	 * @see org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningPackage#getChangePackageEnvelope_Fragment()
-	 * @model containment="true" resolveProxies="true"
+	 * @model unique="false"
 	 * @generated
 	 */
-	EList<AbstractOperation> getFragment();
+	EList<String> getFragment();
 
 	/**
 	 * Whether the fragment contained in this envelope is the last one in a series of fragments.
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ImageProxy.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ImageProxy.java
index 2f3fff6..2a0a767 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ImageProxy.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/ImageProxy.java
@@ -12,13 +12,63 @@
 package org.eclipse.emf.emfstore.internal.server.model.versioning;
 
 /**
- * Proxy for an ImageData object in order to avoid depdendency to SWT.
+ * Proxy for an ImageData object in order to avoid dependency to SWT.
  *
  * @author emueller
  *
  */
 public final class ImageProxy {
 
+	/**
+	 * Helper class for representing RGB values.
+	 */
+	public static class RGB {
+		private final int red;
+		private final int green;
+		private final int blue;
+
+		/**
+		 * Value constructor for a RGB value.
+		 *
+		 * @param red the red value
+		 * @param green the green value
+		 * @param blue the blue value
+		 */
+		public RGB(int red, int green, int blue) {
+			this.red = red;
+			this.green = green;
+			this.blue = blue;
+		}
+
+		/**
+		 * Returns the red value.
+		 *
+		 * @return the red value
+		 */
+		public int getRed() {
+			return red;
+		}
+
+		/**
+		 * Returns the green value.
+		 *
+		 * @return the green value
+		 */
+		public int getGreen() {
+			return green;
+		}
+
+		/**
+		 * Returns the blue value.
+		 *
+		 * @return the blue value
+		 */
+		public int getBlue() {
+			return blue;
+		}
+
+	}
+
 	private int width;
 	private int height;
 	private int depth;
@@ -27,6 +77,8 @@
 	private int redMask;
 	private int greenMask;
 	private int blueMask;
+	private boolean direct = true;
+	private RGB[] paletteColors;
 
 	private ImageProxy() {
 
@@ -198,4 +250,34 @@
 		return this;
 	}
 
+	/**
+	 * Set palette colors, the palette direct flag is set to false.
+	 *
+	 * @param colors colors to set
+	 * @return this {@link ImageProxy}
+	 */
+	public ImageProxy setPaletteColors(RGB[] colors) {
+		paletteColors = colors;
+		direct = false;
+		return this;
+	}
+
+	/**
+	 * Returns the palette colors.
+	 *
+	 * @return the palette colors
+	 */
+	public RGB[] getPaletteColors() {
+		return paletteColors;
+	}
+
+	/**
+	 * Whether this is a palette is direct.
+	 *
+	 * @return {@code true}, if this palette is direct, {@code false} otherwise.
+	 */
+	public boolean isDirect() {
+		return direct;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/VersioningPackage.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/VersioningPackage.java
index 7356364..5642018 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/VersioningPackage.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/VersioningPackage.java
@@ -1166,8 +1166,8 @@
 
 	/**
 	 * The meta object id for the '
-	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.OperationProxyImpl
-	 * <em>Operation Proxy</em>}' class.
+	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.OperationProxyImpl <em>Operation Proxy</em>
+	 * }' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -1231,7 +1231,7 @@
 	int CHANGE_PACKAGE_ENVELOPE__FRAGMENT_COUNT = 1;
 
 	/**
-	 * The feature id for the '<em><b>Fragment</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Fragment</b></em>' attribute list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -1343,8 +1343,8 @@
 
 	/**
 	 * Returns the meta object for class '
-	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.PrimaryVersionSpec
-	 * <em>Primary Version Spec</em>}'.
+	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.PrimaryVersionSpec <em>Primary Version Spec</em>
+	 * }'.
 	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
 	 *
@@ -1464,8 +1464,8 @@
 	EAttribute getLogMessage_Author();
 
 	/**
-	 * Returns the meta object for class '
-	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackage <em>Change Package</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackage
+	 * <em>Change Package</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 *
 	 * @return the meta object for class '<em>Change Package</em>'.
@@ -1525,8 +1525,8 @@
 
 	/**
 	 * Returns the meta object for the containment reference '
-	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.HistoryInfo#getPrimarySpec
-	 * <em>Primary Spec</em>}'.
+	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.HistoryInfo#getPrimarySpec <em>Primary Spec</em>
+	 * }'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -2242,23 +2242,23 @@
 	EAttribute getChangePackageEnvelope_FragmentCount();
 
 	/**
-	 * Returns the meta object for the containment reference list '
+	 * Returns the meta object for the attribute list '
 	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragment
 	 * <em>Fragment</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @return the meta object for the containment reference list '<em>Fragment</em>'.
+	 * @return the meta object for the attribute list '<em>Fragment</em>'.
 	 * @see org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope#getFragment()
 	 * @see #getChangePackageEnvelope()
 	 * @generated
 	 */
-	EReference getChangePackageEnvelope_Fragment();
+	EAttribute getChangePackageEnvelope_Fragment();
 
 	/**
 	 * Returns the meta object for class '
-	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageProxy
-	 * <em>Change Package Proxy</em>}'.
+	 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageProxy <em>Change Package Proxy</em>
+	 * }'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -2578,8 +2578,8 @@
 
 		/**
 		 * The meta object literal for the '
-		 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.HistoryQueryImpl
-		 * <em>History Query</em>}' class.
+		 * {@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.HistoryQueryImpl <em>History Query</em>
+		 * }' class.
 		 * <!-- begin-user-doc --> <!--
 		 * end-user-doc -->
 		 *
@@ -3048,13 +3048,13 @@
 		EAttribute CHANGE_PACKAGE_ENVELOPE__FRAGMENT_COUNT = eINSTANCE.getChangePackageEnvelope_FragmentCount();
 
 		/**
-		 * The meta object literal for the '<em><b>Fragment</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Fragment</b></em>' attribute list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 *
 		 * @generated
 		 */
-		EReference CHANGE_PACKAGE_ENVELOPE__FRAGMENT = eINSTANCE.getChangePackageEnvelope_Fragment();
+		EAttribute CHANGE_PACKAGE_ENVELOPE__FRAGMENT = eINSTANCE.getChangePackageEnvelope_Fragment();
 
 		/**
 		 * The meta object literal for the '
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/ChangePackageEnvelopeImpl.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/ChangePackageEnvelopeImpl.java
index dc59fb7..6816c5a 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/ChangePackageEnvelopeImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/ChangePackageEnvelopeImpl.java
@@ -14,17 +14,13 @@
 import java.util.Collection;
 
 import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningPackage;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
 
 /**
  * <!-- begin-user-doc -->
@@ -32,15 +28,15 @@
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.ChangePackageEnvelopeImpl#getFragmentIndex
  * <em>Fragment Index</em>}</li>
  * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.ChangePackageEnvelopeImpl#getFragmentCount
  * <em>Fragment Count</em>}</li>
- * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.ChangePackageEnvelopeImpl#getFragment <em>
- * Fragment</em>}</li>
+ * <li>{@link org.eclipse.emf.emfstore.internal.server.model.versioning.impl.ChangePackageEnvelopeImpl#getFragment
+ * <em>Fragment</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -90,7 +86,7 @@
 	protected int fragmentCount = FRAGMENT_COUNT_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getFragment() <em>Fragment</em>}' containment reference list.
+	 * The cached value of the '{@link #getFragment() <em>Fragment</em>}' attribute list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -98,7 +94,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<AbstractOperation> fragment;
+	protected EList<String> fragment;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -177,9 +173,9 @@
 	 *
 	 * @generated
 	 */
-	public EList<AbstractOperation> getFragment() {
+	public EList<String> getFragment() {
 		if (fragment == null) {
-			fragment = new EObjectContainmentEList.Resolving<AbstractOperation>(AbstractOperation.class, this,
+			fragment = new EDataTypeEList<String>(String.class, this,
 				VersioningPackage.CHANGE_PACKAGE_ENVELOPE__FRAGMENT);
 		}
 		return fragment;
@@ -192,21 +188,6 @@
 	 * @generated
 	 */
 	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case VersioningPackage.CHANGE_PACKAGE_ENVELOPE__FRAGMENT:
-			return ((InternalEList<?>) getFragment()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 *
-	 * @generated
-	 */
-	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 		case VersioningPackage.CHANGE_PACKAGE_ENVELOPE__FRAGMENT_INDEX:
@@ -237,7 +218,7 @@
 			return;
 		case VersioningPackage.CHANGE_PACKAGE_ENVELOPE__FRAGMENT:
 			getFragment().clear();
-			getFragment().addAll((Collection<? extends AbstractOperation>) newValue);
+			getFragment().addAll((Collection<? extends String>) newValue);
 			return;
 		}
 		super.eSet(featureID, newValue);
@@ -301,6 +282,8 @@
 		result.append(fragmentIndex);
 		result.append(", fragmentCount: "); //$NON-NLS-1$
 		result.append(fragmentCount);
+		result.append(", fragment: "); //$NON-NLS-1$
+		result.append(fragment);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/FileBasedChangePackageImpl.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/FileBasedChangePackageImpl.java
index 05fdee3..021ab64 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/FileBasedChangePackageImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/FileBasedChangePackageImpl.java
@@ -102,9 +102,11 @@
 	private static final String TEMP_FILE_PREFIX = "temp-"; //$NON-NLS-1$
 
 	/**
+	 * Suffix for temporary operation files.
+	 *
 	 * @generated NOT
 	 */
-	private static final String TEMP_SUFFIX = ".temp"; //$NON-NLS-1$
+	public static final String TEMP_SUFFIX = ".temp"; //$NON-NLS-1$
 
 	// FIXME we also have a constant for this on the client side
 	private static final String OPERATION_FILE_SUFFIX = ".eoc"; //$NON-NLS-1$
@@ -171,8 +173,8 @@
 	 */
 	protected EList<OperationProxy> operationProxies;
 
-	private Optional<Integer> cachedSize = Optional.absent();
-	private Optional<Integer> cachedLeafSize = Optional.absent();
+	private int leafSize;
+	private int size;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -504,8 +506,6 @@
 	 */
 	public void add(AbstractOperation op) {
 
-		updateCaches(1, op.getLeafOperations().size());
-
 		final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 		final Resource resource = createVirtualResource();
 		resource.getContents().add(op);
@@ -650,10 +650,8 @@
 	 * @generated NOT
 	 */
 	public int size() {
-		if (!cachedSize.isPresent()) {
-			computeSize();
-		}
-		return cachedSize.get();
+		computeSize();
+		return size;
 	}
 
 	/**
@@ -673,10 +671,8 @@
 	 * @generated NOT
 	 */
 	public boolean isEmpty() {
-		if (!cachedSize.isPresent()) {
-			computeSize();
-		}
-		return cachedSize.get() == 0;
+		computeSize();
+		return size == 0;
 	}
 
 	/**
@@ -697,24 +693,18 @@
 			AbstractOperation operation;
 			final Optional<AbstractOperation> maybeOperation = operationEmitter.tryEmit();
 
-			int removedOps = 0;
-			int removedLeafOps = 0;
 			while (counter > 0 && maybeOperation.isPresent()) {
 				operation = maybeOperation.get();
 				ops.add(operation);
-				removedOps += 1;
-				removedLeafOps += operation.getLeafOperations().size();
 				counter -= 1;
 			}
 
-			updateCaches(-removedOps, -removedLeafOps);
-
 			raf = new RandomAccessFile(getTempFilePath(), "rw"); //$NON-NLS-1$
 			final long skip = operationEmitter.getOffset();
 			raf.seek(skip);
 			final byte[] bytes = asBytes(XmlTags.NEWLINE + XmlTags.CHANGE_PACKAGE_END);
 			raf.write(bytes);
-			raf.setLength(skip + bytes.length);			
+			raf.setLength(skip + bytes.length);
 
 			return ops;
 
@@ -734,20 +724,6 @@
 		}
 	}
 
-	private void invalidateCaches() {
-		cachedSize = Optional.absent();
-		cachedLeafSize = Optional.absent();
-	}
-
-	private void updateCaches(int size, int leafSize) {
-		final int lSize = cachedSize.isPresent() ? cachedSize.get() : 0;
-		final int lLeafSize = cachedLeafSize.isPresent() ? cachedLeafSize.get() : 0;
-		final int newSize = lSize + size;
-		final int newLeafSize = lLeafSize + leafSize;
-		cachedSize = Optional.of(newSize >= 0 ? newSize : 0);
-		cachedLeafSize = Optional.of(newLeafSize >= 0 ? newLeafSize : 0);
-	}
-
 	/**
 	 * {@inheritDoc}
 	 *
@@ -755,7 +731,6 @@
 	 * @generated NOT
 	 */
 	public void clear() {
-		invalidateCaches();
 		Optional<RandomAccessFile> maybeRandomAccessFile = Optional.absent();
 		try {
 			final RandomAccessFile randomAccessFile = new RandomAccessFile(getTempFilePath(), "rw"); //$NON-NLS-1$
@@ -808,6 +783,13 @@
 		final File tempOpFile = new File(getTempFilePath());
 		opFile.delete();
 		tempOpFile.delete();
+		if (eResource() != null) {
+			try {
+				eResource().delete(null);
+			} catch (final IOException ex) {
+				ModelUtil.logException(ex);
+			}
+		}
 	}
 
 	/**
@@ -817,10 +799,8 @@
 	 * @generated NOT
 	 */
 	public int leafSize() {
-		if (!cachedLeafSize.isPresent()) {
-			computeSize();
-		}
-		return cachedLeafSize.get();
+		computeSize();
+		return size + leafSize;
 	}
 
 	private void computeSize() {
@@ -850,7 +830,9 @@
 				}
 			}
 		}
-		updateCaches(size, leafSize);
+
+		this.leafSize = leafSize;
+		this.size = size;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/VersioningPackageImpl.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/VersioningPackageImpl.java
index 0c7c293..ca3110a 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/VersioningPackageImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/VersioningPackageImpl.java
@@ -260,8 +260,9 @@
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
 	 *
 	 * <p>
-	 * This method is used to initialize {@link VersioningPackage#eINSTANCE} when that field is accessed. Clients should
-	 * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc
+	 * This method is used to initialize {@link VersioningPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
 	 *
 	 * @see #eNS_URI
@@ -1048,8 +1049,8 @@
 	 *
 	 * @generated
 	 */
-	public EReference getChangePackageEnvelope_Fragment() {
-		return (EReference) changePackageEnvelopeEClass.getEStructuralFeatures().get(2);
+	public EAttribute getChangePackageEnvelope_Fragment() {
+		return (EAttribute) changePackageEnvelopeEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -1200,7 +1201,7 @@
 		changePackageEnvelopeEClass = createEClass(CHANGE_PACKAGE_ENVELOPE);
 		createEAttribute(changePackageEnvelopeEClass, CHANGE_PACKAGE_ENVELOPE__FRAGMENT_INDEX);
 		createEAttribute(changePackageEnvelopeEClass, CHANGE_PACKAGE_ENVELOPE__FRAGMENT_COUNT);
-		createEReference(changePackageEnvelopeEClass, CHANGE_PACKAGE_ENVELOPE__FRAGMENT);
+		createEAttribute(changePackageEnvelopeEClass, CHANGE_PACKAGE_ENVELOPE__FRAGMENT);
 
 		changePackageProxyEClass = createEClass(CHANGE_PACKAGE_PROXY);
 		createEAttribute(changePackageProxyEClass, CHANGE_PACKAGE_PROXY__ID);
@@ -1478,9 +1479,9 @@
 		initEAttribute(getChangePackageEnvelope_FragmentCount(), ecorePackage.getEInt(), "fragmentCount", null, 1, 1, //$NON-NLS-1$
 			ChangePackageEnvelope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 			!IS_DERIVED, IS_ORDERED);
-		initEReference(getChangePackageEnvelope_Fragment(), theOperationsPackage.getAbstractOperation(), null,
-			"fragment", null, 0, -1, ChangePackageEnvelope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, //$NON-NLS-1$
-			IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getChangePackageEnvelope_Fragment(), ecorePackage.getEString(), "fragment", null, 0, -1, //$NON-NLS-1$
+			ChangePackageEnvelope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE,
+			!IS_DERIVED, IS_ORDERED);
 
 		initEClass(changePackageProxyEClass, ChangePackageProxy.class, "ChangePackageProxy", !IS_ABSTRACT, //$NON-NLS-1$
 			!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/AbstractOperationEmitter.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/AbstractOperationEmitter.java
new file mode 100644
index 0000000..0e07075
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/AbstractOperationEmitter.java
@@ -0,0 +1,275 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar Mueller - initial API and implementation
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.server.model.versioning.impl.persistent;
+
+import java.io.BufferedReader;
+import java.io.Closeable;
+import java.io.DataInput;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PipedOutputStream;
+import java.io.RandomAccessFile;
+import java.nio.channels.Channels;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.io.input.ReversedLinesFileReader;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
+
+/**
+ * Abstract super class for implementing types which emit operations when given an {@link ReadLineCapable} type.
+ *
+ */
+public abstract class AbstractOperationEmitter implements Closeable {
+
+	private final Direction direction;
+
+	private final File operationsFile;
+
+	private ReadLineCapable reader;
+	private final List<Long> forwardOffsets = new ArrayList<Long>();
+	private final List<Long> backwardsOffsets = new ArrayList<Long>();
+	private int currentOpIndex;
+	private long startOffset;
+
+	/**
+	 * Constructor.
+	 *
+	 * @param direction
+	 *            the {@link Direction} that is used for reading
+	 * @param file
+	 *            the operation file
+	 */
+	public AbstractOperationEmitter(Direction direction, File file) {
+		this.direction = direction;
+		operationsFile = file;
+		determineOperationOffsets();
+		currentOpIndex = direction == Direction.Forward ? 0 : backwardsOffsets.size() - 1;
+		initReader();
+	}
+
+	/**
+	 * @return the direction the {@link Direction}
+	 */
+	protected final Direction getDirection() {
+		return direction;
+	}
+
+	private void determineOperationOffsets() {
+		try {
+			final RandomAccessFile randomAccessFile = new RandomAccessFile(operationsFile, "r"); //$NON-NLS-1$
+			final InputStream inputStream = Channels.newInputStream(randomAccessFile.getChannel());
+			final InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+			final BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+
+			long filePointer = 0;
+			try {
+				String line;
+				while ((line = bufferedReader.readLine()) != null) {
+					filePointer += line.getBytes().length;
+					final long filePointerAfterReadline = randomAccessFile.getFilePointer();
+					randomAccessFile.seek(filePointer);
+					int byteAfterLine = randomAccessFile.read();
+					/*
+					 * Line is terminated by either:
+					 * \r\n
+					 * \r
+					 * \n
+					 */
+					if (byteAfterLine == '\r') {
+						filePointer += 1;
+						byteAfterLine = randomAccessFile.read();
+					}
+					if (byteAfterLine == '\n') {
+						filePointer += 1;
+					}
+					randomAccessFile.seek(filePointerAfterReadline);
+
+					if (line.contains(XmlTags.CHANGE_PACKAGE_START)) {
+						startOffset = filePointer;
+					} else if (line.contains(XmlTags.OPERATIONS_START_TAG)) {
+						forwardOffsets.add(filePointer);
+					} else if (line.contains(XmlTags.OPERATIONS_END_TAG)) {
+						backwardsOffsets.add(filePointer);
+					}
+				}
+			} finally {
+				bufferedReader.close();
+				randomAccessFile.close();
+			}
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+		}
+	}
+
+	private void initReader() {
+		try {
+			if (getDirection() == Direction.Forward) {
+				reader = ReadLineCapable.INSTANCE.create(new BufferedReader(new FileReader(operationsFile)));
+			} else {
+				reader = ReadLineCapable.INSTANCE.create(new ReversedLinesFileReader(operationsFile));
+			}
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+		}
+	}
+
+	/**
+	 * Returns the current offset.
+	 *
+	 * @return the current offset
+	 */
+	public long getOffset() {
+		if (currentOpIndex < 0) {
+			return startOffset;
+		}
+		return backwardsOffsets.get(currentOpIndex);
+	}
+
+	/**
+	 * Since an XML Resource needs exactly one root object, we have to write a dummy object to the stream.
+	 *
+	 * @param pos the {@link PipedOutputStream}
+	 * @throws IOException in case there is a problem during write
+	 */
+	private static void writeDummyResourceToStream(PipedOutputStream pos) throws IOException {
+		pos.write(XmlTags.XML_RESOURCE_WITH_EOBJECT.getBytes());
+	}
+
+	/**
+	 * Reads the file in forward direction and writes read lines to the given stream.
+	 *
+	 * @param pos the output stream
+	 */
+	protected final void readForward(PipedOutputStream pos) {
+		try {
+			boolean operationsFound = false;
+			boolean withinOperationsElement = false;
+			final boolean isForwardDir = getDirection() == Direction.Forward;
+			final String closingTag = getClosingTag(isForwardDir);
+			String line = reader.readLine();
+			while (line != null && !line.contains(closingTag)) {
+				if (line.contains(getOpeningTag(isForwardDir))) {
+					withinOperationsElement = true;
+				} else if (withinOperationsElement) {
+					operationsFound = true;
+					pos.write(line.getBytes());
+				}
+				line = reader.readLine();
+			}
+			if (line != null) {
+				withinOperationsElement = false;
+			}
+			if (!operationsFound) {
+				writeDummyResourceToStream(pos);
+			}
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+		} finally {
+			try {
+				pos.close();
+			} catch (final IOException ex) {
+				ModelUtil.logException(ex);
+			}
+		}
+	}
+
+	private void readForward(DataInput reader, PipedOutputStream pos) {
+		try {
+			boolean operationsFound = false;
+			boolean withinOperationsElement = true;
+			final String closingTag = getClosingTag(true);
+			String line = reader.readLine();
+			while (line != null && !line.contains(closingTag)) {
+				if (line.contains(getOpeningTag(true))) {
+					withinOperationsElement = true;
+				} else if (withinOperationsElement && line.length() > 0) {
+					operationsFound = true;
+					pos.write(line.getBytes());
+				}
+				line = reader.readLine();
+			}
+
+			if (!operationsFound) {
+				writeDummyResourceToStream(pos);
+			}
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+		} finally {
+			try {
+				pos.close();
+			} catch (final IOException ex) {
+				ModelUtil.logException(ex);
+			}
+		}
+	}
+
+	/**
+	 * Reads the file in backward direction and writes read lines to the given stream.
+	 *
+	 * @param pos the output strea,
+	 */
+	protected final void readBackward(PipedOutputStream pos) {
+
+		if (currentOpIndex < 0) {
+			try {
+				writeDummyResourceToStream(pos);
+				pos.close();
+			} catch (final IOException ex) {
+				ModelUtil.logException(ex);
+			}
+			return;
+		}
+
+		final long offset = forwardOffsets.get(currentOpIndex);
+		currentOpIndex -= 1;
+
+		RandomAccessFile raf = null;
+		try {
+			raf = new RandomAccessFile(operationsFile, "r"); //$NON-NLS-1$
+			raf.skipBytes((int) offset);
+			readForward(raf, pos);
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+		} finally {
+			try {
+				raf.close();
+			} catch (final IOException ex) {
+				ModelUtil.logException(ex);
+			}
+		}
+	}
+
+	private String getClosingTag(boolean isForward) {
+		return isForward ? XmlTags.OPERATIONS_END_TAG : XmlTags.OPERATIONS_START_TAG;
+	}
+
+	private String getOpeningTag(boolean isForward) {
+		return isForward ? XmlTags.OPERATIONS_START_TAG : XmlTags.OPERATIONS_END_TAG;
+	}
+
+	/**
+	 * Closes the emitter.
+	 */
+	public void close() {
+		try {
+			reader.close();
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java
index 6a38064..5acdf25 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java
@@ -11,22 +11,11 @@
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.server.model.versioning.impl.persistent;
 
-import java.io.BufferedReader;
-import java.io.Closeable;
-import java.io.DataInput;
 import java.io.File;
-import java.io.FileReader;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
-import java.io.RandomAccessFile;
-import java.nio.channels.Channels;
-import java.util.ArrayList;
-import java.util.List;
 
-import org.apache.commons.io.input.ReversedLinesFileReader;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -48,17 +37,7 @@
  * @author emueller
  *
  */
-public class OperationEmitter implements Closeable {
-
-	private final Direction direction;
-
-	private final File operationsFile;
-
-	private ReadLineCapable reader;
-	private final List<Long> forwardOffsets = new ArrayList<Long>();
-	private final List<Long> backwardsOffsets = new ArrayList<Long>();
-	private int currentOpIndex;
-	private long startOffset;
+public class OperationEmitter extends AbstractOperationEmitter {
 
 	/**
 	 * Constructor.
@@ -69,185 +48,7 @@
 	 *            the operation file
 	 */
 	public OperationEmitter(Direction direction, File file) {
-		this.direction = direction;
-		operationsFile = file;
-		determineOperationOffsets();
-		currentOpIndex = direction == Direction.Forward ? 0 : backwardsOffsets.size() - 1;
-		initReader();
-	}
-
-	private void determineOperationOffsets() {
-		try {
-			final RandomAccessFile randomAccessFile = new RandomAccessFile(operationsFile, "r"); //$NON-NLS-1$
-			final InputStream inputStream = Channels.newInputStream(randomAccessFile.getChannel());
-			final InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
-			final BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
-
-			long filePointer = 0;
-			try {
-				String line;
-				while ((line = bufferedReader.readLine()) != null) {
-					filePointer += line.getBytes().length;
-					final long filePointerAfterReadline = randomAccessFile.getFilePointer();
-					randomAccessFile.seek(filePointer);
-					int byteAfterLine = randomAccessFile.read();
-					/*
-					 * Line is terminated by either:
-					 * \r\n
-					 * \r
-					 * \n
-					 */
-					if (byteAfterLine == '\r') {
-						filePointer += 1;
-						byteAfterLine = randomAccessFile.read();
-					}
-					if (byteAfterLine == '\n') {
-						filePointer += 1;
-					}
-					randomAccessFile.seek(filePointerAfterReadline);
-
-					if (line.contains(XmlTags.CHANGE_PACKAGE_START)) {
-						startOffset = filePointer;
-					} else if (line.contains(XmlTags.OPERATIONS_START_TAG)) {
-						forwardOffsets.add(filePointer);
-					} else if (line.contains(XmlTags.OPERATIONS_END_TAG)) {
-						backwardsOffsets.add(filePointer);
-					}
-				}
-			} finally {
-				bufferedReader.close();
-				randomAccessFile.close();
-			}
-		} catch (final IOException ex) {
-			ModelUtil.logException(ex);
-		}
-	}
-
-	private void initReader() {
-		try {
-			if (direction == Direction.Forward) {
-				reader = ReadLineCapable.INSTANCE.create(new BufferedReader(new FileReader(operationsFile)));
-			} else {
-				reader = ReadLineCapable.INSTANCE.create(new ReversedLinesFileReader(operationsFile));
-			}
-		} catch (final IOException ex) {
-			ModelUtil.logException(ex);
-		}
-	}
-
-	/**
-	 * Returns the current offset.
-	 *
-	 * @return the current offset
-	 */
-	public long getOffset() {
-		if (currentOpIndex < 0) {
-			return startOffset;
-		}
-		return backwardsOffsets.get(currentOpIndex);
-	}
-
-	/**
-	 * Since an XML Resource needs exactly one root object, we have to write a dummy object to the stream.
-	 *
-	 * @param pos the outputstream
-	 * @throws IOException in case there is a problem during write
-	 */
-	private static void writeDummyResourceToStream(PipedOutputStream pos) throws IOException {
-		pos.write(XmlTags.XML_RESOURCE_WITH_EOBJECT.getBytes());
-	}
-
-	private void readForward(PipedOutputStream pos) {
-		try {
-			boolean operationsFound = false;
-			boolean withinOperationsElement = false;
-			final boolean isForwardDir = direction == Direction.Forward;
-			final String closingTag = getClosingTag(isForwardDir);
-			String line = reader.readLine();
-			while (line != null && !line.contains(closingTag)) {
-				if (line.contains(getOpeningTag(isForwardDir))) {
-					withinOperationsElement = true;
-				} else if (withinOperationsElement) {
-					operationsFound = true;
-					pos.write(line.getBytes());
-				}
-				line = reader.readLine();
-			}
-			if (line != null) {
-				withinOperationsElement = false;
-			}
-			if (!operationsFound) {
-				writeDummyResourceToStream(pos);
-			}
-		} catch (final IOException ex) {
-			ModelUtil.logException(ex);
-		} finally {
-			try {
-				pos.close();
-			} catch (final IOException ex) {
-				ModelUtil.logException(ex);
-			}
-		}
-	}
-
-	private void readForward(DataInput reader, PipedOutputStream pos) {
-		try {
-			boolean operationsFound = false;
-			boolean withinOperationsElement = true;
-			final String closingTag = getClosingTag(true);
-			String line = reader.readLine();
-			while (line != null && !line.contains(closingTag)) {
-				if (line.contains(getOpeningTag(true))) {
-					withinOperationsElement = true;
-				} else if (withinOperationsElement && line.length() > 0) {
-					operationsFound = true;
-					pos.write(line.getBytes());
-				}
-				line = reader.readLine();
-			}
-
-			if (!operationsFound) {
-				writeDummyResourceToStream(pos);
-			}
-		} catch (final IOException ex) {
-			ModelUtil.logException(ex);
-		} finally {
-			try {
-				pos.close();
-			} catch (final IOException ex) {
-				ModelUtil.logException(ex);
-			}
-		}
-	}
-
-	private void readBackward(PipedOutputStream pos) {
-
-		if (currentOpIndex < 0) {
-			try {
-				pos.close();
-			} catch (final IOException ex) {
-				ModelUtil.logException(ex);
-			}
-			return;
-		}
-
-		final long offset = forwardOffsets.get(currentOpIndex);
-		currentOpIndex -= 1;
-
-		RandomAccessFile raf = null;
-		try {
-			raf = new RandomAccessFile(operationsFile, "r"); //$NON-NLS-1$
-			raf.skipBytes((int) offset);
-			readForward(raf, pos);
-		} catch (final IOException ex) {
-			ModelUtil.logException(ex);
-		} finally {
-			try {
-				raf.close();
-			} catch (final IOException ex) {
-				ModelUtil.logException(ex);
-			}
-		}
+		super(direction, file);
 	}
 
 	/**
@@ -264,7 +65,7 @@
 
 		new Thread(new Runnable() {
 			public void run() {
-				if (direction == Direction.Forward) {
+				if (getDirection() == Direction.Forward) {
 					readForward(pos);
 				} else {
 					readBackward(pos);
@@ -283,15 +84,6 @@
 		} finally {
 			pis.close();
 		}
-
-	}
-
-	private String getClosingTag(boolean isForward) {
-		return isForward ? XmlTags.OPERATIONS_END_TAG : XmlTags.OPERATIONS_START_TAG;
-	}
-
-	private String getOpeningTag(boolean isForward) {
-		return isForward ? XmlTags.OPERATIONS_START_TAG : XmlTags.OPERATIONS_END_TAG;
 	}
 
 	private EObject deserialize(final PipedInputStream pis) throws IOException {
@@ -302,15 +94,4 @@
 		xmlLoadImpl.load((XMLResource) resource, pis, ModelUtil.getResourceLoadOptions());
 		return resource.getContents().get(0);
 	}
-
-	/**
-	 * Closes the emitter.
-	 */
-	public void close() {
-		try {
-			reader.close();
-		} catch (final IOException ex) {
-			ModelUtil.logException(ex);
-		}
-	}
 }
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/SerializedOperationEmitter.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/SerializedOperationEmitter.java
new file mode 100644
index 0000000..77486ba
--- /dev/null
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/SerializedOperationEmitter.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.server.model.versioning.impl.persistent;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.util.Scanner;
+
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
+
+import com.google.common.base.Optional;
+
+/**
+ * Type for emitting {@link AbstractOperation}s in their serialized form when given a {@link ReadLineCapable} type.
+ *
+ * @author Johannes Faltermeier
+ *
+ */
+public class SerializedOperationEmitter extends AbstractOperationEmitter {
+
+	/**
+	 * Constructor.
+	 *
+	 * @param direction
+	 *            the {@link Direction} that is used for reading
+	 * @param file
+	 *            the operation file
+	 */
+	public SerializedOperationEmitter(Direction direction, File file) {
+		super(direction, file);
+	}
+
+	/**
+	 * Tries to parse an operation in the reading directions and emits it,
+	 * if parsing has been successful. The operation is returned in its parsed string representation.
+	 *
+	 * @return the successfully parsed operation as a string representation
+	 * @throws IOException
+	 *             in case reading from the {@link ReadLineCapable} fails
+	 */
+	public Optional<String> tryEmit() throws IOException {
+		final PipedOutputStream pos = new PipedOutputStream();
+		final PipedInputStream pis = new PipedInputStream(pos);
+
+		new Thread(new Runnable() {
+			public void run() {
+				if (getDirection() == Direction.Forward) {
+					readForward(pos);
+				} else {
+					readBackward(pos);
+				}
+			}
+		}).start();
+
+		try {
+			final String streamToString = convertStreamToString(pis);
+			if (XmlTags.XML_RESOURCE_WITH_EOBJECT.equals(streamToString)) {
+				return Optional.absent();
+			}
+			return Optional.of(streamToString);
+		} finally {
+			pis.close();
+		}
+	}
+
+	private static String convertStreamToString(InputStream inputStream) {
+		final Scanner scanner = new Scanner(inputStream);
+		scanner.useDelimiter("\\A"); //$NON-NLS-1$
+		final String result = scanner.hasNext() ? scanner.next() : ""; //$NON-NLS-1$
+		scanner.close();
+		return result;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/operations/util/ChangePackageUtil.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/operations/util/ChangePackageUtil.java
index e1f94c6..5ea8e7f 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/operations/util/ChangePackageUtil.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/operations/util/ChangePackageUtil.java
@@ -11,15 +11,22 @@
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
 
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.LineIterator;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.emfstore.internal.common.model.util.FileUtil;
-import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.AbstractChangePackage;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackage;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope;
@@ -71,38 +78,15 @@
 	 *            the max number of operations a single fragment may consists of
 	 * @return an iterator for the created fragments
 	 */
-	public static Iterator<ChangePackageEnvelope> splitChangePackage(final AbstractChangePackage changePackage,
+	public static Iterator<ChangePackageEnvelope> splitChangePackage(final FileBasedChangePackage changePackage,
 		final int changePackageFragmentSize) {
 
 		return new Iterator<ChangePackageEnvelope>() {
 
 			private int fragmentIndex;
-			private int currentOpIndex;
 			private int count;
-			private boolean isInitialized;
 			private ChangePackageEnvelope envelope;
-
-			private void init() {
-				int leafSizeCounter = 0;
-				final ESCloseableIterable<AbstractOperation> operations = changePackage.operations();
-				try {
-					for (final AbstractOperation operation : operations.iterable()) {
-						final int countLeafOperations = countLeafOperations(operation);
-						leafSizeCounter += countLeafOperations;
-						if (leafSizeCounter < changePackageFragmentSize) {
-							continue;
-						}
-						leafSizeCounter = 0;
-						count += 1;
-					}
-				} finally {
-					operations.close();
-				}
-				if (leafSizeCounter != 0 || count == 0) {
-					count += 1;
-				}
-				isInitialized = true;
-			}
+			private boolean isInitialized;
 
 			public boolean hasNext() {
 
@@ -112,19 +96,12 @@
 
 				if (envelope == null) {
 					envelope = VersioningFactory.eINSTANCE.createChangePackageEnvelope();
-					final ChangePackage cp = VersioningFactory.eINSTANCE.createChangePackage();
-					cp.setLogMessage(ModelUtil.clone(changePackage.getLogMessage()));
 					envelope.setFragmentCount(count);
 				}
 
-				while (countLeafOperations(envelope.getFragment()) < changePackageFragmentSize
-					&& currentOpIndex < changePackage.size()) {
-
-					// FIXME: get(opIndex) might be slow
-					final AbstractOperation op = changePackage.get(currentOpIndex);
-					envelope.getFragment().add(ModelUtil.clone(op));
-					currentOpIndex += 1;
-				}
+				final List<String> readLines = readLines(fragmentIndex * changePackageFragmentSize, changePackage,
+					changePackageFragmentSize);
+				envelope.getFragment().addAll(readLines);
 
 				envelope.setFragmentIndex(fragmentIndex);
 
@@ -135,6 +112,59 @@
 				return false;
 			}
 
+			private void init() {
+				LineNumberReader lineNumberReader = null;
+				try {
+					lineNumberReader = new LineNumberReader(new FileReader(new File(changePackage.getTempFilePath())));
+					lineNumberReader.skip(Long.MAX_VALUE);
+					final int lines = lineNumberReader.getLineNumber() + 1;
+					count = lines / changePackageFragmentSize;
+					if (lines % changePackageFragmentSize != 0) {
+						count += 1;
+					}
+				} catch (final FileNotFoundException ex) {
+					throw new IllegalStateException(ex);
+				} catch (final IOException ex) {
+					throw new IllegalStateException(ex);
+				} finally {
+					IOUtils.closeQuietly(lineNumberReader);
+				}
+				isInitialized = true;
+			}
+
+			private List<String> readLines(int from, final FileBasedChangePackage changePackage,
+				final int changePackageFragmentSize) {
+
+				int readLines = 0;
+				FileReader reader;
+				final List<String> lines = new ArrayList<String>();
+
+				try {
+					reader = new FileReader(new File(changePackage.getTempFilePath()));
+					final LineIterator lineIterator = new LineIterator(reader);
+					int read = 0;
+
+					while (read < from) {
+						if (!lineIterator.hasNext()) {
+							return lines;
+						}
+						lineIterator.next();
+						read += 1;
+					}
+
+					while (readLines < changePackageFragmentSize && lineIterator.hasNext()) {
+						final String nextLine = lineIterator.next();
+						readLines += 1;
+						lines.add(nextLine);
+					}
+
+				} catch (final FileNotFoundException ex) {
+					throw new IllegalStateException(ex);
+				}
+
+				return lines;
+			}
+
 			public ChangePackageEnvelope next() {
 				if (envelope == null) {
 					final boolean hasNext = hasNext();
diff --git a/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF
index a5ba403..a2b2789 100644
--- a/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.emfstore.server/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Server
 Bundle-SymbolicName: org.eclipse.emf.emfstore.server;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Activator: org.eclipse.emf.emfstore.internal.server.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.apache.commons.codec;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emf.emfstore.server.model;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.migration;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.common;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.common.model;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.server.model;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.migration;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.common;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.emfstore.common.model;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
@@ -27,51 +27,51 @@
  .parser;version="3.1.3",org.apache.xmlrpc.serializer;version="3.1.3",
  org.apache.xmlrpc.server;version="3.1.3",org.apache.xmlrpc.util;versi
  on="3.1.3",org.apache.xmlrpc.webserver;version="3.1.3",org.eclipse.em
- f.emfstore.internal.server;version="1.7.0"; x-friends:="org.eclipse.e
+ f.emfstore.internal.server;version="1.8.0"; x-friends:="org.eclipse.e
  mf.emfstore.client,  org.eclipse.emf.emfstore.client.ui,  org.eclipse
  .emf.emfstore.client.test.common,  org.eclipse.emf.emfstore.server.te
  st,  org.eclipse.emf.emfstore.test.common,  org.eclipse.emf.ecp.emfst
  ore.localserver,  org.eclipse.emf.ecp.emfstore.ui,  org.eclipse.emf.e
  mfstore.client.test",org.eclipse.emf.emfstore.internal.server.accessc
- ontrol;version="1.7.0";x-friends:="org.eclipse.emf.emfstore.test.comm
+ ontrol;version="1.8.0";x-friends:="org.eclipse.emf.emfstore.test.comm
  on,org.eclipse.emf.emfstore.server.test",org.eclipse.emf.emfstore.int
- ernal.server.accesscontrol.authentication;version="1.7.0";x-friends:=
+ ernal.server.accesscontrol.authentication;version="1.8.0";x-friends:=
  "org.eclipse.emf.emfstore.client.test,org.eclipse.emf.emfstore.test.c
  ommon",org.eclipse.emf.emfstore.internal.server.accesscontrol.authent
- ication.verifiers;version="1.7.0";x-friends:="org.eclipse.emf.emfstor
+ ication.verifiers;version="1.8.0";x-friends:="org.eclipse.emf.emfstor
  e.client.test,org.eclipse.emf.emfstore.server.test",org.eclipse.emf.e
- mfstore.internal.server.conflictDetection;version="1.7.0"; x-friends:
+ mfstore.internal.server.conflictDetection;version="1.8.0"; x-friends:
  ="org.eclipse.emf.emfstore.client,  org.eclipse.emf.emfstore.client.t
  est,  org.eclipse.emf.emfstore.client.ui,  org.eclipse.emf.emfstore.c
  lient.conflictdetection.test,  org.eclipse.emf.emfstore.test.common",
- org.eclipse.emf.emfstore.internal.server.connection;version="1.7.0";x
+ org.eclipse.emf.emfstore.internal.server.connection;version="1.8.0";x
  -friends:="org.eclipse.emf.emfstore.server.test",org.eclipse.emf.emfs
- tore.internal.server.connection.xmlrpc;version="1.7.0";x-friends:="or
+ tore.internal.server.connection.xmlrpc;version="1.8.0";x-friends:="or
  g.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.test.common",o
  rg.eclipse.emf.emfstore.internal.server.connection.xmlrpc.util;versio
- n="1.7.0";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf
+ n="1.8.0";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf
  .emfstore.test.common",org.eclipse.emf.emfstore.internal.server.core;
- version="1.7.0";x-friends:="org.eclipse.emf.emfstore.test.common",org
- .eclipse.emf.emfstore.internal.server.core.helper;version="1.7.0";x-i
+ version="1.8.0";x-friends:="org.eclipse.emf.emfstore.test.common",org
+ .eclipse.emf.emfstore.internal.server.core.helper;version="1.8.0";x-i
  nternal:=true,org.eclipse.emf.emfstore.internal.server.core.subinterf
- aces;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.intern
- al.server.exceptions;version="1.7.0"; x-friends:="org.eclipse.emf.emf
+ aces;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.intern
+ al.server.exceptions;version="1.8.0"; x-friends:="org.eclipse.emf.emf
  store.client,  org.eclipse.emf.emfstore.client.test.common,  org.ecli
  pse.emf.emfstore.client.test.ui,  org.eclipse.emf.emfstore.client.ui,
    org.eclipse.emf.emfstore.example.merging,  org.eclipse.emf.emfstore
  .test.common,  org.eclipse.emf.emfstore.server.test,  org.eclipse.emf
  .ecp.emfstore.ui,  org.eclipse.emf.emfstore.client.api.test",org.ecli
- pse.emf.emfstore.internal.server.filetransfer;version="1.7.0";x-frien
+ pse.emf.emfstore.internal.server.filetransfer;version="1.8.0";x-frien
  ds:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.test.co
- mmon",org.eclipse.emf.emfstore.internal.server.impl.api;version="1.7.
+ mmon",org.eclipse.emf.emfstore.internal.server.impl.api;version="1.8.
  0";x-friends:="org.eclipse.emf.emfstore.client,org.eclipse.emf.emfsto
  re.client.ui",org.eclipse.emf.emfstore.internal.server.startup;versio
- n="1.7.0";x-friends:="org.eclipse.emf.emfstore.client",org.eclipse.em
- f.emfstore.internal.server.storage;version="1.7.0";x-internal:=true,o
- rg.eclipse.emf.emfstore.server;version="1.7.0",org.eclipse.emf.emfsto
- re.server.auth;version="1.7.0",org.eclipse.emf.emfstore.server.except
- ions;version="1.7.0",org.eclipse.emf.emfstore.server.observer;version
- ="1.7.0"
+ n="1.8.0";x-friends:="org.eclipse.emf.emfstore.client",org.eclipse.em
+ f.emfstore.internal.server.storage;version="1.8.0";x-internal:=true,o
+ rg.eclipse.emf.emfstore.server;version="1.8.0",org.eclipse.emf.emfsto
+ re.server.auth;version="1.8.0",org.eclipse.emf.emfstore.server.except
+ ions;version="1.8.0",org.eclipse.emf.emfstore.server.observer;version
+ ="1.8.0"
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.servlet;version="[2.0.0,4.0.0)";resolution:=optional,
  javax.servlet.http;version="[2.0.0,4.0.0)";resolution:=optional,
diff --git a/bundles/org.eclipse.emf.emfstore.server/pom.xml b/bundles/org.eclipse.emf.emfstore.server/pom.xml
index 39f0552..4d5e7ef 100644
--- a/bundles/org.eclipse.emf.emfstore.server/pom.xml
+++ b/bundles/org.eclipse.emf.emfstore.server/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-bundles-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.bundles</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.server</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.emfstore.server/schema/resourceOptions.exsd b/bundles/org.eclipse.emf.emfstore.server/schema/resourceOptions.exsd
index 7dc1de0..7a50792 100644
--- a/bundles/org.eclipse.emf.emfstore.server/schema/resourceOptions.exsd
+++ b/bundles/org.eclipse.emf.emfstore.server/schema/resourceOptions.exsd
@@ -70,6 +70,15 @@
                </documentation>
             </annotation>
          </attribute>
+         <attribute name="saveProjectStateOnTag" type="boolean">
+            <annotation>
+               <documentation>
+                  If this attribute is set to true the projectstate for a version will be saved in its entirety when the version is tagged. 
+
+This option is valuable when used in conjunction with a changing metamodel an thus resulting migrations.
+               </documentation>
+            </annotation>
+         </attribute>
       </complexType>
    </element>
 
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/EMFStoreController.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/EMFStoreController.java
index fee25f8..e068401 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/EMFStoreController.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/EMFStoreController.java
@@ -61,6 +61,7 @@
 import org.eclipse.emf.emfstore.internal.server.model.versioning.VersionSpec;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningFactory;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.Versions;
+import org.eclipse.emf.emfstore.internal.server.startup.MigrationManager;
 import org.eclipse.emf.emfstore.internal.server.startup.PostStartupListener;
 import org.eclipse.emf.emfstore.internal.server.startup.ServerHrefMigrator;
 import org.eclipse.emf.emfstore.internal.server.startup.StartupListener;
@@ -152,9 +153,11 @@
 
 		registerDynamicModels();
 
-		// FIXME: JF
-		// new MigrationManager().migrateModel();
-		serverSpace = initServerSpace();
+		serverSpace = initServerSpace(Boolean.getBoolean("emfstore.migration")); //$NON-NLS-1$
+
+		if (serverSpace == null) {
+			return;
+		}
 
 		initializeBranchesIfRequired(serverSpace);
 
@@ -235,8 +238,7 @@
 	}
 
 	private void initLogging() {
-		Platform.getLog(Platform.getBundle(EMFSTORE_COMMON_BUNDLE)).addLogListener(new
-			ILogListener() {
+		Platform.getLog(Platform.getBundle(EMFSTORE_COMMON_BUNDLE)).addLogListener(new ILogListener() {
 
 			public void logging(IStatus status, String plugin) {
 				if (status.getSeverity() == IStatus.INFO) {
@@ -295,7 +297,8 @@
 					try {
 						FileUtil.copyFile(new URL("platform:/plugin/" //$NON-NLS-1$
 							+ element.getIConfigurationElement().getNamespaceIdentifier() + "/" + attribute) //$NON-NLS-1$
-						.openConnection().getInputStream(), targetFile);
+								.openConnection().getInputStream(),
+							targetFile);
 						return;
 					} catch (final IOException e) {
 						ModelUtil.logWarning(
@@ -333,7 +336,7 @@
 		return connectionHandlers;
 	}
 
-	private ServerSpace initServerSpace() throws FatalESException {
+	private ServerSpace initServerSpace(boolean migrationMode) throws FatalESException {
 
 		final ESResourceSetProvider resourceSetProvider = getResourceSetProvider();
 
@@ -360,6 +363,12 @@
 					throw new FatalESException(Messages.EMFStoreController_Error_During_Migration);
 				}
 			}
+			/* file has been fixed. check if metamodel migration is needed */
+			if (migrationMode) {
+				MigrationManager.migrate(getResourceSetProvider().getResourceSet(),
+					!ServerConfiguration.useFileBasedChangePackageOnServer());
+				return null;
+			}
 			resource = resourceSet.createResource(serverspaceURI);
 		}
 
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/ServerConfiguration.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/ServerConfiguration.java
index 048f45b..a3c1d65 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/ServerConfiguration.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/ServerConfiguration.java
@@ -49,6 +49,7 @@
 	private static final String RESOURCE_OPTIONS_EXTENSION_POINT = "org.eclipse.emf.emfstore.server.resourceOptions"; //$NON-NLS-1$
 	private static final String CHANGEPACKAGE_FRAGMENT_SIZE_ATTRIBUTE = "changePackageFragmentSize"; //$NON-NLS-1$
 	private static final String SERVER_USE_FILEBASED_CHANGEPACKAGE = "useFileBasedChangePackage"; //$NON-NLS-1$
+	private static final String SAVE_PROJECT_STATE_ON_TAG = "saveProjectStateOnTag"; //$NON-NLS-1$
 
 	private static final String CHECKSUM_KEY = "org.eclipse.emf.emfstore.server.computeChecksum"; //$NON-NLS-1$
 
@@ -294,6 +295,11 @@
 	 */
 	public static final String AUTHENTICATION_MATCH_USERS_IGNORE_CASE = "emfstore.accesscontrol.authentication.matchusers.ignorecase"; //$NON-NLS-1$
 
+	/**
+	 * Whether authenticated users (eg. by LDAP) should be created in the server workspace on-the-fly on login.
+	 */
+	public static final String AUTHENTICATION_CREATE_AUTHENTICATED_USERS = "emfstore.accesscontrol.authentication.createusers"; //$NON-NLS-1$
+
 	private static final List<PostStartupListener> POST_STARTUP_LISTENERS = new ArrayList<PostStartupListener>();
 	private static final List<StartupListener> STARTUP_LISTENERS = new ArrayList<StartupListener>();
 
@@ -379,6 +385,7 @@
 	private static Boolean isChecksumComputationOnCommitActive;
 	private static Optional<Integer> changePackageFragmentSize;
 	private static Boolean useFileBasedChangePackageOnServer;
+	private static Boolean saveProjectStateOnTag;
 
 	/**
 	 * Return the server home directory location.
@@ -710,4 +717,21 @@
 	public static void addPostStartupListener(PostStartupListener listener) {
 		POST_STARTUP_LISTENERS.add(listener);
 	}
+
+	/**
+	 * Whether the project state of a tagged version should be kept as a file.
+	 *
+	 * @return <code>true</code> if project state should be kept, <code>false</code> otherwise
+	 */
+	public static boolean createProjectStateOnTag() {
+		if (saveProjectStateOnTag == null) {
+			try {
+				saveProjectStateOnTag = new ESExtensionPoint(RESOURCE_OPTIONS_EXTENSION_POINT, true)
+					.getBoolean(SAVE_PROJECT_STATE_ON_TAG, false);
+			} catch (final ESExtensionPointException e) {
+				saveProjectStateOnTag = false;
+			}
+		}
+		return saveProjectStateOnTag;
+	}
 }
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/UserVerifier.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/UserVerifier.java
index 7133ac8..e51a602 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/UserVerifier.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/accesscontrol/authentication/verifiers/UserVerifier.java
@@ -13,6 +13,7 @@
 
 import java.util.Set;
 
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.emf.emfstore.internal.common.APIUtil;
 import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
 import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
@@ -20,6 +21,7 @@
 import org.eclipse.emf.emfstore.internal.server.exceptions.AccessControlException;
 import org.eclipse.emf.emfstore.internal.server.model.AuthenticationInformation;
 import org.eclipse.emf.emfstore.internal.server.model.accesscontrol.ACUser;
+import org.eclipse.emf.emfstore.internal.server.model.accesscontrol.AccesscontrolFactory;
 import org.eclipse.emf.emfstore.server.model.ESAuthenticationInformation;
 import org.eclipse.emf.emfstore.server.model.ESClientVersionInfo;
 import org.eclipse.emf.emfstore.server.model.ESOrgUnitProvider;
@@ -85,6 +87,9 @@
 		final Boolean ignoreCase = Boolean.parseBoolean(ServerConfiguration.getProperties().getProperty(
 			ServerConfiguration.AUTHENTICATION_MATCH_USERS_IGNORE_CASE, Boolean.FALSE.toString()));
 
+		final Boolean createAuthenticatedUsers = Boolean.parseBoolean(ServerConfiguration.getProperties().getProperty(
+			ServerConfiguration.AUTHENTICATION_CREATE_AUTHENTICATED_USERS, Boolean.FALSE.toString()));
+
 		synchronized (MonitorProvider.getInstance().getMonitor()) {
 			final Set<ESUser> users = orgUnitProvider.getUsers();
 			final Set<ACUser> internal = APIUtil.toInternal(users);
@@ -99,6 +104,13 @@
 					}
 				}
 			}
+			if (createAuthenticatedUsers) {
+				final ACUser acUser = AccesscontrolFactory.eINSTANCE.createACUser();
+				acUser.setName(username);
+				acUser.setDescription(StringUtils.EMPTY);
+				orgUnitProvider.addUser(acUser.toAPI());
+				return acUser;
+			}
 			throw new AccessControlException();
 		}
 	}
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/EMFStoreImpl.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/EMFStoreImpl.java
index 2828119..df72abb 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/EMFStoreImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/EMFStoreImpl.java
@@ -252,10 +252,10 @@
 				results[i] = adjustResult(sessionId, results[i]);
 			}
 			return results;
-		} else if (AbstractChangePackage.class.isInstance(result) && !ChangePackageProxy.class.isInstance(result)) {
+		} else if (FileBasedChangePackage.class.isInstance(result) && !ChangePackageProxy.class.isInstance(result)) {
 			final ChangePackageProxy changePackageProxy = createAndRegisterChangePackageProxy(
 				sessionId,
-				AbstractChangePackage.class.cast(result));
+				FileBasedChangePackage.class.cast(result));
 			return changePackageProxy;
 		}
 
@@ -275,7 +275,7 @@
 	 * @return
 	 */
 	private ChangePackageProxy createAndRegisterChangePackageProxy(final SessionId session,
-		final AbstractChangePackage changePackage) {
+		final FileBasedChangePackage changePackage) {
 
 		final ESSessionId resolvedSession = getAccessControl().getSessions().resolveSessionById(session.getId());
 		final SessionId sessionId = APIUtil.toInternal(SessionId.class, resolvedSession);
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentProviderAdapter.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentProviderAdapter.java
index 8b1f0bb..d795fd6 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentProviderAdapter.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentProviderAdapter.java
@@ -18,9 +18,8 @@
 
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.AbstractChangePackage;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.FileBasedChangePackage;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.util.ChangePackageUtil;
 import org.eclipse.emf.emfstore.server.exceptions.ESException;
 
@@ -33,8 +32,7 @@
  */
 public class ChangePackageFragmentProviderAdapter extends AdapterImpl {
 
-	private final Map<String, Map<Integer, List<AbstractOperation>>> proxyIdToChangePackageFragments =
-		new LinkedHashMap<String, Map<Integer, List<AbstractOperation>>>();
+	private final Map<String, Map<Integer, List<String>>> proxyIdToChangePackageFragments = new LinkedHashMap<String, Map<Integer, List<String>>>();
 
 	/**
 	 * Splits the given change package into fragments and stores them.
@@ -45,7 +43,7 @@
 	 * @param changePackage
 	 *            the change package to be splitted
 	 */
-	public void addAsFragments(String proxyId, AbstractChangePackage changePackage) {
+	public void addAsFragments(String proxyId, FileBasedChangePackage changePackage) {
 
 		final Iterator<ChangePackageEnvelope> envelopes = ChangePackageUtil.splitChangePackage(
 			changePackage,
@@ -56,10 +54,10 @@
 		}
 	}
 
-	private void addFragment(String proxyId, List<AbstractOperation> fragment) {
-		Map<Integer, List<AbstractOperation>> map = proxyIdToChangePackageFragments.get(proxyId);
+	private void addFragment(String proxyId, List<String> fragment) {
+		Map<Integer, List<String>> map = proxyIdToChangePackageFragments.get(proxyId);
 		if (map == null) {
-			map = new LinkedHashMap<Integer, List<AbstractOperation>>();
+			map = new LinkedHashMap<Integer, List<String>>();
 			proxyIdToChangePackageFragments.put(proxyId, map);
 		}
 		final int currentSize = map.size();
@@ -76,8 +74,8 @@
 	 * @return the fragment
 	 * @throws ESException in case no fragments for the given proxy ID are present
 	 */
-	public List<AbstractOperation> getFragment(String proxyId, int fragmentIndex) throws ESException {
-		final Map<Integer, List<AbstractOperation>> fragments = proxyIdToChangePackageFragments.get(proxyId);
+	public List<String> getFragment(String proxyId, int fragmentIndex) throws ESException {
+		final Map<Integer, List<String>> fragments = proxyIdToChangePackageFragments.get(proxyId);
 		if (fragments == null) {
 			throw new ESException(Messages.ChangePackageFragmentProviderAdapter_NoFragmentsFound);
 		}
@@ -92,7 +90,7 @@
 	 * @return the number of available fragments
 	 */
 	public int getFragmentSize(String proxyId) {
-		final Map<Integer, List<AbstractOperation>> map = proxyIdToChangePackageFragments.get(proxyId);
+		final Map<Integer, List<String>> map = proxyIdToChangePackageFragments.get(proxyId);
 		if (map == null) {
 			return -1;
 		}
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java
index daf223e..151d731 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ChangePackageFragmentUploadAdapter.java
@@ -11,6 +11,8 @@
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.server.core.subinterfaces;
 
+import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.text.MessageFormat;
 import java.util.LinkedHashMap;
@@ -38,8 +40,8 @@
 public class ChangePackageFragmentUploadAdapter extends AdapterImpl {
 
 	// maps proxy ID to file-based change package
-	private final Map<String, FileBasedChangePackage> proxyIdToChangePackageFragments = new LinkedHashMap<String, FileBasedChangePackage>();
-	private final Map<String, FileBasedChangePackage> proxyIdToCompletedChangePackages = new LinkedHashMap<String, FileBasedChangePackage>();
+	private final Map<String, File> proxyIdToChangePackageFragments = new LinkedHashMap<String, File>();
+	private final Map<String, File> proxyIdToCompletedChangePackages = new LinkedHashMap<String, File>();
 
 	/**
 	 * Adds a single fragment.
@@ -50,19 +52,28 @@
 	 *            the actual fragment to be added
 	 * @throws ESException in case the fragment could not be added
 	 */
-	public void addFragment(String proxyId, List<AbstractOperation> fragment) throws ESException {
-		FileBasedChangePackage fileBasedChangePackage = proxyIdToChangePackageFragments.get(proxyId);
-		if (fileBasedChangePackage == null) {
-			fileBasedChangePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
-			fileBasedChangePackage.initialize(
-				FileUtil.createLocationForTemporaryChangePackage());
-			proxyIdToChangePackageFragments.put(proxyId, fileBasedChangePackage);
+	public void addFragment(String proxyId, List<String> fragment) throws ESException {
+		File file = proxyIdToChangePackageFragments.get(proxyId);
+		if (file == null) {
+			file = new File(FileUtil.createLocationForTemporaryChangePackage() + ".temp"); //$NON-NLS-1$
+			proxyIdToChangePackageFragments.put(proxyId, file);
 		}
-		fileBasedChangePackage.addAll(fragment);
+		FileWriter writer = null;
 		try {
-			fileBasedChangePackage.save();
+			writer = new FileWriter(file, true);
+			for (final String str : fragment) {
+				writer.write(str + System.getProperty("line.separator")); //$NON-NLS-1$
+			}
 		} catch (final IOException ex) {
-			throw new ESException(Messages.ChangePackageFragmentAdapter_SaveChangePackageFailed, ex);
+			throw new ESException(Messages.ChangePackageFragmentUploadAdapter_SplittingFailed, ex);
+		} finally {
+			if (writer != null) {
+				try {
+					writer.close();
+				} catch (final IOException ex) {
+					throw new ESException(Messages.ChangePackageFragmentAdapter_SaveChangePackageFailed, ex);
+				}
+			}
 		}
 	}
 
@@ -74,8 +85,8 @@
 	 * @throws ESException in case
 	 */
 	public void markAsComplete(String proxyId) throws ESException {
-		final FileBasedChangePackage possiblyCompletedChangePackage = proxyIdToCompletedChangePackages.get(proxyId);
-		final FileBasedChangePackage fileBasedChangePackage = proxyIdToChangePackageFragments.get(proxyId);
+		final File possiblyCompletedChangePackage = proxyIdToCompletedChangePackages.get(proxyId);
+		final File fileBasedChangePackage = proxyIdToChangePackageFragments.get(proxyId);
 
 		if (possiblyCompletedChangePackage != null) {
 			throw new ESException(Messages.ChangePackageFragmentUploadAdapter_ChangePackageAlreadyComplete);
@@ -101,11 +112,16 @@
 	 * @return the aggregated {@link ChangePackage} as an {@link Optional}
 	 */
 	public Optional<ChangePackage> convertFileBasedToInMemoryChangePackage(String proxyId) {
-		final FileBasedChangePackage fileBasedChangePackage = proxyIdToCompletedChangePackages.get(proxyId);
-		if (fileBasedChangePackage == null) {
+		final File file = proxyIdToCompletedChangePackages.get(proxyId);
+		if (file == null) {
 			return Optional.absent();
 		}
-		final ESCloseableIterable<AbstractOperation> operationsHandle = fileBasedChangePackage.operations();
+		final FileBasedChangePackage cp = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+		final String path = file.getAbsolutePath().substring(0,
+			file.getAbsolutePath().length() - ".temp".length()); //$NON-NLS-1$
+		cp.setFilePath(path);
+
+		final ESCloseableIterable<AbstractOperation> operationsHandle = cp.operations();
 		final ChangePackage changePackage = VersioningFactory.eINSTANCE.createChangePackage();
 		try {
 			for (final AbstractOperation operation : operationsHandle.iterable()) {
@@ -126,11 +142,21 @@
 	 * @return the file based change package as an {@link Optional}
 	 */
 	public Optional<FileBasedChangePackage> getFileBasedChangePackage(String proxyId) {
-		final FileBasedChangePackage fileBasedChangePackage = proxyIdToCompletedChangePackages.get(proxyId);
-		if (fileBasedChangePackage == null) {
+		final File file = proxyIdToCompletedChangePackages.get(proxyId);
+		if (file == null) {
 			return Optional.absent();
 		}
-		return Optional.of(fileBasedChangePackage);
+		final FileBasedChangePackage cp = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+		final String path = file.getAbsolutePath().substring(0,
+			file.getAbsolutePath().length() - ".temp".length()); //$NON-NLS-1$
+		cp.setFilePath(path);
+		try {
+			cp.save();
+		} catch (final IOException ex) {
+			// TODO: use checked exception?
+			throw new IllegalStateException(ex);
+		}
+		return Optional.of(cp);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/HistorySubInterfaceImpl.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/HistorySubInterfaceImpl.java
index 49a68e5..dbff961 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/HistorySubInterfaceImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/HistorySubInterfaceImpl.java
@@ -22,7 +22,10 @@
 import java.util.TreeSet;
 
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+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.ServerConfiguration;
 import org.eclipse.emf.emfstore.internal.server.core.AbstractEmfstoreInterface;
 import org.eclipse.emf.emfstore.internal.server.core.AbstractSubEmfstoreInterface;
 import org.eclipse.emf.emfstore.internal.server.exceptions.FatalESException;
@@ -42,6 +45,7 @@
 import org.eclipse.emf.emfstore.internal.server.model.versioning.VersionSpec;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningFactory;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.Versions;
+import org.eclipse.emf.emfstore.server.ESServerURIUtil;
 import org.eclipse.emf.emfstore.server.auth.ESMethod;
 import org.eclipse.emf.emfstore.server.auth.ESMethod.MethodId;
 import org.eclipse.emf.emfstore.server.exceptions.ESException;
@@ -99,6 +103,20 @@
 			} catch (final FatalESException e) {
 				throw new StorageException(StorageException.NOSAVE);
 			}
+
+			if (ServerConfiguration.createProjectStateOnTag()) {
+				final URI projectStateURI = ESServerURIUtil.createProjectStateURI(projectId, version.getPrimarySpec());
+				if (ESServerURIUtil.exists(projectStateURI)) {
+					/* the project state is existing, just return */
+					return;
+				}
+				final Project projectState = ProjectSubInterfaceImpl.getProjectFromVersion(version);
+				try {
+					getResourceHelper().createResourceForProject(projectState, versionSpec, projectId);
+				} catch (final FatalESException e) {
+					throw new StorageException(StorageException.NOSAVE);
+				}
+			}
 		}
 	}
 
@@ -119,6 +137,7 @@
 		throws ESException {
 		sanityCheckObjects(projectId, versionSpec, tag);
 		synchronized (getMonitor()) {
+			/* remove tag */
 			final Version version = getSubInterface(VersionSubInterfaceImpl.class).getVersion(projectId, versionSpec);
 			final Iterator<TagVersionSpec> iterator = version.getTagSpecs().iterator();
 			while (iterator.hasNext()) {
@@ -131,6 +150,19 @@
 			} catch (final FatalESException e) {
 				throw new StorageException(StorageException.NOSAVE);
 			}
+
+			/* delete project state if necessary */
+			if (ServerConfiguration.createProjectStateOnTag()) {
+				final URI projectStateURI = ESServerURIUtil.createProjectStateURI(projectId, version.getPrimarySpec());
+				if (!ESServerURIUtil.exists(projectStateURI)) {
+					/* the project state is not existing, just return */
+					return;
+				}
+				if (VersionSubInterfaceImpl.shouldDeleteOldProjectStateAccordingToOptions(projectId, version,
+					getResourceHelper())) {
+					getResourceHelper().deleteProjectState(version, projectId);
+				}
+			}
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java
index 9dc2396..7ca3f2c 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java
@@ -23,6 +23,7 @@
 	private static final String BUNDLE_NAME = "org.eclipse.emf.emfstore.internal.server.core.subinterfaces.messages"; //$NON-NLS-1$
 	public static String ChangePackageFragmentAdapter_SaveChangePackageFailed;
 	public static String ChangePackageFragmentProviderAdapter_NoFragmentsFound;
+	public static String ChangePackageFragmentUploadAdapter_SplittingFailed;
 	public static String ChangePackageFragmentUploadAdapter_ChangePackageAlreadyComplete;
 	public static String ChangePackageFragmentUploadAdapter_NoChangePackageFragmentsFound;
 	public static String EMFStorePropertiesSubInterfaceImpl_Project_Does_Not_Exist;
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ProjectSubInterfaceImpl.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ProjectSubInterfaceImpl.java
index e5d7947..ca116f8 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ProjectSubInterfaceImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/ProjectSubInterfaceImpl.java
@@ -146,6 +146,18 @@
 	 *             in case of failure
 	 */
 	protected Project getProject(Version version) throws InvalidVersionSpecException, ESException {
+		return getProjectFromVersion(version);
+	}
+
+	/**
+	 * Returns the project of a version.
+	 * 
+	 * @param version the version
+	 * @return the project
+	 * @throws InvalidVersionSpecException if the given version is invalid
+	 * @throws ESException in case of failure
+	 */
+	static Project getProjectFromVersion(Version version) throws InvalidVersionSpecException, ESException {
 		if (version.getProjectState() == null) {
 
 			// TODO BRANCH Review potential performance optimization by searching state in both directions
@@ -222,7 +234,7 @@
 					description,
 					logMessage,
 					org.eclipse.emf.emfstore.internal.common.model.ModelFactory.eINSTANCE
-					.createProject());
+						.createProject());
 			} catch (final FatalESException e) {
 				throw new StorageException(StorageException.NOSAVE);
 			}
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java
index d0d90c0..a8956a8 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java
@@ -31,6 +31,7 @@
 import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
 import org.eclipse.emf.emfstore.internal.server.core.AbstractEmfstoreInterface;
 import org.eclipse.emf.emfstore.internal.server.core.AbstractSubEmfstoreInterface;
+import org.eclipse.emf.emfstore.internal.server.core.helper.ResourceHelper;
 import org.eclipse.emf.emfstore.internal.server.exceptions.BranchInfoMissingException;
 import org.eclipse.emf.emfstore.internal.server.exceptions.FatalESException;
 import org.eclipse.emf.emfstore.internal.server.exceptions.InvalidVersionSpecException;
@@ -133,7 +134,7 @@
 
 	private PrimaryVersionSpec resolveAncestorVersionSpec(ProjectHistory projectHistory,
 		AncestorVersionSpec versionSpec)
-			throws InvalidVersionSpecException {
+		throws InvalidVersionSpecException {
 
 		Version currentSource = getVersion(projectHistory, versionSpec.getSource());
 		Version currentTarget = getVersion(projectHistory, versionSpec.getTarget());
@@ -326,7 +327,7 @@
 
 		final ChangePackageFragmentProviderAdapter adapter = maybeAdapter.get();
 		final ChangePackageEnvelope envelope = VersioningFactory.eINSTANCE.createChangePackageEnvelope();
-		final List<AbstractOperation> fragment = adapter.getFragment(proxyId, fragmentIndex);
+		final List<String> fragment = adapter.getFragment(proxyId, fragmentIndex);
 
 		envelope.getFragment().addAll(fragment);
 		envelope.setFragmentCount(adapter.getFragmentSize(proxyId));
@@ -455,7 +456,7 @@
 				if (newVersion.getAncestorVersion() == null && baseVersion.getProjectState() != null) {
 					// delete projectstate from last revision depending on
 					// persistence policy
-					deleteOldProjectSpaceAccordingToOptions(projectId, baseVersion);
+					deleteOldProjectStateAccordingToOptions(projectId, baseVersion);
 				}
 
 				save(baseVersion);
@@ -522,7 +523,7 @@
 
 	private void rollback(final ProjectHistory projectHistory, final BranchInfo baseBranch,
 		final Version baseVersion, Version newVersion, BranchInfo newBranch, final FatalESException e)
-			throws StorageException {
+		throws StorageException {
 		projectHistory.getVersions().remove(newVersion);
 
 		if (newBranch == null) {
@@ -676,26 +677,52 @@
 	 * @param previousHeadVersion
 	 *            last head version
 	 */
-	private void deleteOldProjectSpaceAccordingToOptions(ProjectId projectId, Version previousHeadVersion) {
+	private void deleteOldProjectStateAccordingToOptions(ProjectId projectId, Version previousHeadVersion) {
+		if (shouldDeleteOldProjectStateAccordingToOptions(projectId, previousHeadVersion, getResourceHelper())) {
+			getResourceHelper().deleteProjectState(previousHeadVersion, projectId);
+		}
+	}
+
+	/**
+	 * Whether a projectstate should be deleted according to the server configuration.
+	 *
+	 * @param projectId project id
+	 * @param previousHeadVersion last head version
+	 * @param resourceHelper the resource helper
+	 * @return <code>true</code> if project state should be deleted, <code>false</code> otherwise
+	 */
+	static boolean shouldDeleteOldProjectStateAccordingToOptions(
+		ProjectId projectId,
+		Version previousHeadVersion,
+		ResourceHelper resourceHelper) {
+
+		final boolean keepBecauseOfTaggedVersion = ServerConfiguration.createProjectStateOnTag()
+			&& !previousHeadVersion.getTagSpecs().isEmpty();
+		if (keepBecauseOfTaggedVersion) {
+			return false;
+		}
+
 		final String property = ServerConfiguration.getProperties().getProperty(
 			ServerConfiguration.PROJECTSTATE_VERSION_PERSISTENCE,
 			ServerConfiguration.PROJECTSPACE_VERSION_PERSISTENCE_DEFAULT);
 
 		if (property.equals(ServerConfiguration.PROJECTSTATE_VERSION_PERSISTENCE_EVERYXVERSIONS)) {
 
-			final int x = getResourceHelper().getXFromPolicy(
+			final int x = resourceHelper.getXFromPolicy(
 				ServerConfiguration.PROJECTSTATE_VERSION_PERSISTENCE_EVERYXVERSIONS_X,
 				ServerConfiguration.PROJECTSTATE_VERSION_PERSISTENCE_EVERYXVERSIONS_X_DEFAULT, false);
 
 			// always save projecstate of first version
 			final int lastVersion = previousHeadVersion.getPrimarySpec().getIdentifier();
 			if (lastVersion != 0 && lastVersion % x != 0) {
-				getResourceHelper().deleteProjectState(previousHeadVersion, projectId);
+				return true;
 			}
 
 		} else {
-			getResourceHelper().deleteProjectState(previousHeadVersion, projectId);
+			return true;
 		}
+
+		return false;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties
index b37b381..e800252 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties
@@ -1,5 +1,6 @@
 ChangePackageFragmentAdapter_SaveChangePackageFailed=Couldn't save change package.
 ChangePackageFragmentProviderAdapter_NoFragmentsFound=No fragments exist.
+ChangePackageFragmentUploadAdapter_SplittingFailed=Creating change package fragment failed
 ChangePackageFragmentUploadAdapter_ChangePackageAlreadyComplete=Trying to mark an already completed change package as complete.
 ChangePackageFragmentUploadAdapter_NoChangePackageFragmentsFound=No change package fragments for proxy id {0} found.
 EMFStorePropertiesSubInterfaceImpl_Project_Does_Not_Exist=The Project does not exist on the server. Cannot set the properties.
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/startup/MigrationManager.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/startup/MigrationManager.java
index e752edc..84247a6 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/startup/MigrationManager.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/startup/MigrationManager.java
@@ -9,229 +9,218 @@
  * Contributors:
  * wesendon
  * koegel
+ * jfaltermeier
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.server.startup;
 
+import java.io.File;
+import java.io.IOException;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.io.FileUtils;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.emfstore.common.ESSystemOutProgressMonitor;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
+import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrationException;
+import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrator;
+import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigratorUtil;
+import org.eclipse.emf.emfstore.internal.server.exceptions.FatalESException;
+import org.eclipse.emf.emfstore.internal.server.model.ProjectHistory;
+import org.eclipse.emf.emfstore.internal.server.model.ServerSpace;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.FileBasedChangePackage;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.Version;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningFactory;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.impl.FileBasedChangePackageImpl;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.impl.persistent.Direction;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.impl.persistent.SerializedOperationEmitter;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.OperationsPackage;
+import org.eclipse.emf.emfstore.server.ESServerURIUtil;
+
+import com.google.common.base.Optional;
+
 /**
  * Applies migrator to files on server.
  *
  * @author koegel
  * @author wesendon
+ * @author jfaltermeier
  */
-// TODO: internal
-public class MigrationManager {
-	//
-	// /**
-	// * Starts migration.
-	// *
-	// * @throws FatalESException in case of failure
-	// */
-	// public void migrateModel() throws FatalESException {
-	// int modelVersionNumber = 0;
-	// // try {
-	// // modelVersionNumber = ModelUtil.getModelVersionNumber();
-	// // } catch (MalformedModelVersionException e1) {
-	// // throw new FatalESException(e1);
-	// // }
-	//
-	// // check for legacy server space
-	// File versionFile = new File(ServerConfiguration.getModelReleaseNumberFileName());
-	// if (!versionFile.exists()) {
-	// stampCurrentVersionNumber(modelVersionNumber);
-	// }
-	//
-	// // check if we need to migrate
-	// ModelVersion modelVersion;
-	// URI versionFileUri = URI.createFileURI(ServerConfiguration.getModelReleaseNumberFileName());
-	// ResourceSet resourceSet = new ResourceSetImpl();
-	// try {
-	// Resource resource = resourceSet.getResource(versionFileUri, true);
-	// EList<EObject> directContents = resource.getContents();
-	// modelVersion = (ModelVersion) directContents.get(0);
-	// // BEGIN SUPRESS CATCH EXCEPTION
-	// } catch (RuntimeException e) {
-	// // END SUPRESS CATCH EXCEPTION
-	// // resource can not be loaded, assume version number before metamodel split
-	// modelVersion = ModelFactory.eINSTANCE.createModelVersion();
-	// modelVersion.setReleaseNumber(4);
-	// }
-	//
-	// if (modelVersion.getReleaseNumber() == modelVersionNumber) {
-	// return;
-	// }
-	//
-	// if (!EMFStoreMigratorUtil.isMigratorAvailable()) {
-	// throw new FatalESException("Model must be migrated to new version, but no migrators are available.");
-	// }
-	//
-	// // ask for confirmation
-	// boolean doProcceed = askForConfirmationForMigration();
-	// if (!doProcceed) {
-	// String message = "Server shutting down, model update is mandatory.";
-	// System.out.println(message);
-	// throw new FatalESException(message);
-	// }
-	//
-	// // migrate all versions of all projects
-	// // we need to migrate
-	// File serverSpaceDirectory = new File(ServerConfiguration.getServerHome());
-	// // for all projects
-	// for (File projectDirectory : serverSpaceDirectory.listFiles()) {
-	// if (projectDirectory.getName().startsWith(ServerConfiguration.FILE_PREFIX_PROJECTFOLDER)
-	// && projectDirectory.isDirectory()) {
-	//
-	// System.out.println("Migrating project at " + projectDirectory + "...");
-	//
-	// convertInitialProjectState(modelVersion, projectDirectory);
-	//
-	// File[] listFiles = projectDirectory.listFiles(new FileFilter() {
-	// public boolean accept(File pathname) {
-	// if (pathname.isFile()
-	// && (pathname.getName().endsWith(".ucp") || pathname.getName().endsWith(".ups"))) {
-	// return true;
-	// }
-	// return false;
-	// }
-	// });
-	//
-	// convertAllVersions(modelVersion, projectDirectory, listFiles);
-	//
-	// // convertAllBackupStates(modelVersion, projectDirectory, listFiles);
-	// }
-	// }
-	// stampCurrentVersionNumber(modelVersionNumber);
-	// }
-	//
-	// private void convertInitialProjectState(ModelVersion modelVersion, File projectDirectory)
-	// throws FatalESException {
-	// URI version0StateURI = URI.createFileURI(projectDirectory.getAbsolutePath() + File.separatorChar
-	// + ServerConfiguration.FILE_PREFIX_PROJECTSTATE + "0" + ServerConfiguration.FILE_EXTENSION_PROJECTSTATE);
-	// try {
-	// System.out.println("Migrating version 0...");
-	// migrate(version0StateURI, new ArrayList<URI>(), modelVersion.getReleaseNumber());
-	// } catch (EMFStoreMigrationException e) {
-	// throw new FatalESException("Migration of project at " + projectDirectory + " failed!", e);
-	// }
-	// }
-	//
-	// private void convertAllVersions(ModelVersion modelVersion, File projectDirectory, File[] listFiles)
-	// throws FatalESException {
-	// List<URI> changePackageURIs = new ArrayList<URI>();
-	//
-	// Arrays.sort(listFiles, new Comparator<File>() {
-	//
-	// public int compare(File o1, File o2) {
-	// return compare(o1.getName(), o2.getName());
-	// }
-	//
-	// private int compare(String name1, String name2) {
-	// return getNumber(name1).compareTo(getNumber(name2));
-	// }
-	//
-	// private Integer getNumber(String filename) {
-	// String name = filename.substring(0, filename.lastIndexOf("."));
-	//
-	// int i = name.length() - 1;
-	// while (i >= 0 && '0' <= name.charAt(i) && name.charAt(i) <= '9') {
-	// i--;
-	// }
-	// i++;
-	//
-	// String number = name.substring(i);
-	// return number.equals("") ? 0 : Integer.parseInt(number);
-	// }
-	// });
-	//
-	// for (File changePackageFile : listFiles) {
-	// String changePackageName = changePackageFile.getName();
-	// if (changePackageName.startsWith(ServerConfiguration.FILE_PREFIX_CHANGEPACKAGE)) {
-	// int versionSpec = parseVersionSpecFromFileName(changePackageName);
-	// URI changePackageURI = URI.createFileURI(changePackageFile.getAbsolutePath());
-	// changePackageURIs.add(changePackageURI);
-	// String projectStateFilename = projectDirectory.getAbsolutePath() + File.separatorChar
-	// + ServerConfiguration.FILE_PREFIX_PROJECTSTATE + versionSpec
-	// + ServerConfiguration.FILE_EXTENSION_PROJECTSTATE;
-	// File projectStateFile = new File(projectStateFilename);
-	// if (projectStateFile.exists()) {
-	// URI projectURI = URI.createFileURI(projectStateFilename);
-	// try {
-	// System.out.println("Migrating version " + versionSpec + " with its "
-	// + (changePackageURIs.size() - 1) + " previous versions...");
-	// migrate(projectURI, changePackageURIs, modelVersion.getReleaseNumber());
-	// } catch (EMFStoreMigrationException e) {
-	// throw new FatalESException("Migration of project at " + projectDirectory + " failed!", e);
-	// }
-	// changePackageURIs.clear();
-	// }
-	//
-	// }
-	//
-	// }
-	// }
-	//
-	// private int parseVersionSpecFromFileName(String versionName) {
-	// int startOfFileExtension = versionName.lastIndexOf(".");
-	// int prefixLength = ServerConfiguration.FILE_PREFIX_CHANGEPACKAGE.length();
-	// String versionSpecString = versionName.substring(prefixLength, startOfFileExtension);
-	// int versionSpec = Integer.parseInt(versionSpecString);
-	// return versionSpec;
-	// }
-	//
-	// /**
-	// * Migrate the model instance if neccessary.
-	// *
-	// * @param projectURI the uri of the project state
-	// * @param changesURI the uri of the local changes of the project state
-	// * @param sourceModelReleaseNumber
-	// * @throws ModelMigrationException
-	// */
-	// private void migrate(URI projectURI, List<URI> changesURIs, int sourceModelReleaseNumber)
-	// throws EMFStoreMigrationException {
-	//
-	// List<URI> modelURIs = new ArrayList<URI>();
-	// modelURIs.add(projectURI);
-	// for (URI changeURI : changesURIs) {
-	// modelURIs.add(changeURI);
-	// }
-	// EMFStoreMigratorUtil.getEMFStoreMigrator().migrate(modelURIs,
-	// new ConsoleProgressMonitor());
-	// }
-	//
-	// private void stampCurrentVersionNumber(int modelReleaseNumber) {
-	// URI versionFileUri = URI.createFileURI(ServerConfiguration.getModelReleaseNumberFileName());
-	// Resource versionResource = new ResourceSetImpl().createResource(versionFileUri);
-	// ModelVersion modelVersion = ModelFactory.eINSTANCE.createModelVersion();
-	// modelVersion.setReleaseNumber(modelReleaseNumber);
-	// versionResource.getContents().add(modelVersion);
-	// try {
-	// ModelUtil.saveResource(versionResource, ModelUtil.getResourceLogger());
-	// } catch (IOException e) {
-	// // MK Auto-generated catch block
-	// e.printStackTrace();
-	// }
-	// }
-	//
-	// /**
-	// * Ask for Confirmation for model migration.
-	// *
-	// * @return true if user wants to proceed
-	// * @throws FatalESException
-	// */
-	// private boolean askForConfirmationForMigration() throws FatalESException {
-	// System.out
-	// .println("Your model is not up to date. Do you want to update now and did you backup your emfstore folder? (y/n)");
-	//
-	// byte[] buffer = new byte[1];
-	// String input = "";
-	// int read = 0;
-	//
-	// try {
-	// read = System.in.read(buffer, 0, 1);
-	// } catch (IOException e) {
-	// throw new FatalESException("Cannot read from input", e);
-	// }
-	//
-	// input = new String(buffer, 0, read);
-	// return input.equalsIgnoreCase("y");
-	// }
+@SuppressWarnings("restriction")
+public final class MigrationManager {
+
+	private MigrationManager() {
+	}
+
+	/**
+	 * Performs a migration of the server space.
+	 *
+	 * @param resourceSet a resource set which contains all necessary converters/handler and may be safely used by the
+	 *            migrator.
+	 * @param inMemoryChangePackage <code>true</code> if server is configured to use in memory change packages,
+	 *            <code>false</code> otherwise
+	 * @throws FatalESException in case of a fatal state
+	 */
+	public static void migrate(ResourceSet resourceSet, boolean inMemoryChangePackage) throws FatalESException {
+		/* check if migrator is available */
+		if (!EMFStoreMigratorUtil.isMigratorAvailable()) {
+			return;
+		}
+
+		/* get migrator */
+		EMFStoreMigrator migrator = null;
+		try {
+			migrator = EMFStoreMigratorUtil.getEMFStoreMigrator();
+		} catch (final EMFStoreMigrationException ex1) {
+			throw new FatalESException(
+				"No EMFStore Migrator could be created even though a migrator should be available."); //$NON-NLS-1$
+		}
+
+		/* load server space in order to access versions */
+		final URI serverSpaceURI = ESServerURIUtil.createServerSpaceURI();
+		final Resource resource = resourceSet.createResource(serverSpaceURI);
+		try {
+			resource.load(null);
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+			return;
+		}
+		final ServerSpace serverSpace = (ServerSpace) resource.getContents().get(0);
+
+		/* get uris which might have to be migrated */
+		final Set<URI> urisToMigrate = new LinkedHashSet<URI>();
+		final Map<URI, List<URI>> fileBasedCPToTempFiles = new LinkedHashMap<URI, List<URI>>();
+		fillURIsToMigrate(resourceSet.getURIConverter(), serverSpace, urisToMigrate, fileBasedCPToTempFiles,
+			inMemoryChangePackage);
+
+		/* check if all URIs may be handled by the migrator */
+		final Set<URI> urisWhichCantBeHandled = migrator.canHandle(urisToMigrate);
+		if (!urisWhichCantBeHandled.isEmpty()) {
+			urisToMigrate.removeAll(urisWhichCantBeHandled);
+			for (final URI uri : urisWhichCantBeHandled) {
+				ModelUtil.logInfo(MessageFormat.format(
+					"No migrator found for URI {0}. If a migration is needed for this URI you may encounter problems.", //$NON-NLS-1$
+					uri));
+			}
+		}
+
+		/* get URIs that actually need migration */
+		final Set<URI> urisWhichNeedMigration = migrator.needsMigration(urisToMigrate);
+
+		if (urisWhichNeedMigration.isEmpty()) {
+			return;
+		}
+
+		/* perform the actual migration */
+		try {
+			migrator.migrate(urisWhichNeedMigration, new ESSystemOutProgressMonitor());
+		} catch (final EMFStoreMigrationException ex) {
+			ModelUtil.logException(ex);
+		}
+
+		/*
+		 * fix file based changepackages (every operation was migrated on its own in a temp file. these need to be
+		 * reassembled)
+		 */
+		fixFileBasedCPs(fileBasedCPToTempFiles);
+
+	}
+
+	private static void fixFileBasedCPs(final Map<URI, List<URI>> fileBasedCPToTempFiles) {
+		for (final URI fileBasedCPURI : fileBasedCPToTempFiles.keySet()) {
+			/* create a new file based changepackage and add all migrated operations to it */
+			final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+			changePackage.initialize(fileBasedCPURI.toFileString());
+			for (final URI tempOperationFileURI : fileBasedCPToTempFiles.get(fileBasedCPURI)) {
+				try {
+					final AbstractOperation operation = ModelUtil.loadEObjectFromResource(
+						OperationsPackage.eINSTANCE.getAbstractOperation(),
+						tempOperationFileURI, false);
+					changePackage.add(operation);
+				} catch (final IOException ex) {
+					ModelUtil.logException(ex);
+				}
+			}
+
+			/* copy temp file to regular file */
+			try {
+				FileUtils.copyFile(new File(changePackage.getTempFilePath()),
+					new File(changePackage.getFilePath()));
+			} catch (final IOException ex) {
+				ModelUtil.logException(ex);
+			}
+		}
+	}
+
+	private static void fillURIsToMigrate(
+		URIConverter uriConverter,
+		final ServerSpace serverSpace,
+		Set<URI> urisToMigrate,
+		Map<URI, List<URI>> fileBasedCPToTempFiles,
+		boolean inMemoryChangePackage) {
+		/* loop over all versions and check if changepackage/projectstate resources are available */
+		for (final ProjectHistory project : serverSpace.getProjects()) {
+			for (final Version version : project.getVersions()) {
+				final URI versionURI = EcoreUtil.getURI(version);
+				final URI projectStateURI = ESServerURIUtil.createProjectStateURI(versionURI);
+				if (uriConverter.exists(projectStateURI, null)) {
+					urisToMigrate.add(uriConverter.normalize(projectStateURI));
+				}
+				final URI changePackageURI = ESServerURIUtil.createChangePackageURI(versionURI);
+				if (!inMemoryChangePackage) {
+					fillURIsToMigrateForFileBasedCP(uriConverter, changePackageURI, urisToMigrate,
+						fileBasedCPToTempFiles);
+				} else {
+					if (uriConverter.exists(changePackageURI, null)) {
+						urisToMigrate.add(uriConverter.normalize(changePackageURI));
+					}
+				}
+			}
+		}
+	}
+
+	private static void fillURIsToMigrateForFileBasedCP(
+		URIConverter uriConverter,
+		URI changePackageURI,
+		Set<URI> urisToMigrate,
+		Map<URI, List<URI>> fileBasedCPToTempFiles) {
+		final URI normalizedFileBasedChangePackageURI = uriConverter.normalize(changePackageURI);
+		final URI operationsFile = URI.createURI(
+			normalizedFileBasedChangePackageURI.toString() + FileBasedChangePackageImpl.FILE_OP_INDEX);
+		try {
+			final File operationsJavaFile = new File(operationsFile.toFileString());
+			if (!operationsJavaFile.exists()) {
+				/* no file -> nothing to add */
+				return;
+			}
+			fileBasedCPToTempFiles.put(operationsFile, new ArrayList<URI>());
+			final SerializedOperationEmitter operationEmitter = new SerializedOperationEmitter(
+				Direction.Forward, operationsJavaFile);
+			Optional<String> operation = operationEmitter.tryEmit();
+			while (operation.isPresent()) {
+				final File tempFile = File.createTempFile("esMigration", ".xmi"); //$NON-NLS-1$//$NON-NLS-2$
+				tempFile.deleteOnExit();
+				FileUtils.writeStringToFile(tempFile,
+					"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + operation.get(), //$NON-NLS-1$
+					"UTF-8"); //$NON-NLS-1$
+				final URI tempFileURI = URI.createFileURI(tempFile.getAbsolutePath());
+				urisToMigrate.add(tempFileURI);
+				fileBasedCPToTempFiles.get(operationsFile).add(tempFileURI);
+				operation = operationEmitter.tryEmit();
+			}
+			operationEmitter.close();
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+		}
+	}
 }
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/storage/XMIServerURIConverter.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/storage/XMIServerURIConverter.java
index 5fac991..0215234 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/storage/XMIServerURIConverter.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/storage/XMIServerURIConverter.java
@@ -82,7 +82,7 @@
 
 	@Override
 	protected URI normalizeServerSpaceURI(String profile) {
-		return URI.createFileURI(ServerConfiguration.getServerHome() + "storage" + FILE_EXTENSION_MAINSTORAGE); //$NON-NLS-1$
+		return URI.createFileURI(getServerHome() + "storage" + FILE_EXTENSION_MAINSTORAGE); //$NON-NLS-1$
 	}
 
 	@Override
@@ -108,7 +108,7 @@
 	}
 
 	private String getProjectFolder(String projectId) {
-		return ServerConfiguration.getServerHome() + FILE_PREFIX_PROJECTFOLDER + projectId
+		return getServerHome() + FILE_PREFIX_PROJECTFOLDER + projectId
 			+ File.separatorChar;
 	}
 
@@ -131,4 +131,11 @@
 		return extensions;
 	}
 
+	/**
+	 * @return The path to the server home.
+	 */
+	protected String getServerHome() {
+		return ServerConfiguration.getServerHome();
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/server/ESServerURIUtil.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/server/ESServerURIUtil.java
index 8357701..40cd6f6 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/server/ESServerURIUtil.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/server/ESServerURIUtil.java
@@ -16,6 +16,10 @@
 
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.emfstore.common.ESResourceSetProvider;
+import org.eclipse.emf.emfstore.common.extensionpoint.ESExtensionPoint;
+import org.eclipse.emf.emfstore.common.extensionpoint.ESPriorityComparator;
 import org.eclipse.emf.emfstore.internal.common.CommonUtil;
 import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
 import org.eclipse.emf.emfstore.internal.server.model.ProjectId;
@@ -95,6 +99,8 @@
 	 */
 	public static final String DYNAMIC_MODELS_SEGMENT = "dynamic-models"; //$NON-NLS-1$
 
+	private static URIConverter uriConverter;
+
 	private ESServerURIUtil() {
 		// private constructor
 	}
@@ -170,6 +176,20 @@
 	}
 
 	/**
+	 * Creates an EMFStore URI for addressing a specific changepackage of a project.
+	 * <p />
+	 * Example URI: emfstore://serverspaces/<i>profile</i>/projects/<i>identifier</i>/changepackages/<i>nr</i>
+	 *
+	 * @param versionURI the valid uri of a version
+	 * @return the EMFStore URI
+	 * @since 1.8
+	 */
+	public static URI createChangePackageURI(URI versionURI) {
+		return versionURI.trimSegments(2).appendSegment(CHANGEPACKAGES_SEGMENT)
+			.appendSegment(versionURI.segment(versionURI.segmentCount() - 1));
+	}
+
+	/**
 	 * Creates an EMFStore URI for addressing a specific state of a project.
 	 * <p />
 	 * Example URI: emfstore://serverspaces/<i>profile</i>/projects/<i>identifier</i>/projectstates/<i>nr</i>
@@ -183,6 +203,20 @@
 	}
 
 	/**
+	 * Creates an EMFStore URI for addressing a specific state of a project.
+	 * <p />
+	 * Example URI: emfstore://serverspaces/<i>profile</i>/projects/<i>identifier</i>/projectstates/<i>nr</i>
+	 *
+	 * @param versionURI the valid uri of a version
+	 * @return the EMFStore URI
+	 * @since 1.8
+	 */
+	public static URI createProjectStateURI(URI versionURI) {
+		return versionURI.trimSegments(2).appendSegment(PROJECTSTATES_SEGMENT)
+			.appendSegment(versionURI.segment(versionURI.segmentCount() - 1));
+	}
+
+	/**
 	 * Returns the used profile.
 	 * <p />
 	 * Example URI: emfstore://serverspaces/<b><i>profile</i></b>/projects/<i>identifier</i>/versions/<i>nr</i>
@@ -214,4 +248,29 @@
 		return getServerPrefix() + PROJECTS_SEGMENT + "/" + projectId.getId() + "/"; //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
+	/**
+	 * Whether a resource for the given uri is existing. Please note that this method will only return valid arguments
+	 * when used with EMFStore-URIs or standard EMF-URIs.
+	 *
+	 * @param uri the uri to check
+	 * @return <code>true</code> if a resource for the given URI is existing, <code>false</code> otherwise
+	 * @since 1.8
+	 */
+	public static boolean exists(URI uri) {
+		return getURIConverter().exists(uri, null);
+	}
+
+	private static URIConverter getURIConverter() {
+		if (uriConverter == null) {
+			final ESExtensionPoint extensionPoint = new ESExtensionPoint(
+				"org.eclipse.emf.emfstore.server.resourceSetProvider", //$NON-NLS-1$
+				true, new ESPriorityComparator("priority", true)); //$NON-NLS-1$
+			final ESResourceSetProvider resourceSetProvider = extensionPoint
+				.getElementWithHighestPriority()
+				.getClass("class", ESResourceSetProvider.class); //$NON-NLS-1$
+			uriConverter = resourceSetProvider.getResourceSet().getURIConverter();
+		}
+		return uriConverter;
+	}
+
 }
diff --git a/features/org.eclipse.emf.emfstore.client.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.feature/feature.xml
index f47486f..d7d2f98 100644
--- a/features/org.eclipse.emf.emfstore.client.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.client.feature"
       label="EMFStore Client"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.client"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all plugins to contact the EMFStore server from a client application.
diff --git a/features/org.eclipse.emf.emfstore.client.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.feature/pom.xml
index 5627b29..753045c 100644
--- a/features/org.eclipse.emf.emfstore.client.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml
index 95c082f..f4e30d4 100644
--- a/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.transaction.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.client.transaction.feature"
       label="EMFStore Transaction Support"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.client.transaction"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature adds transaction support to EMFStore based on EMF Transaction. It automatically registers an TransactionalEditingDomain with the EMFStore.
diff --git a/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml
index 2cd7ad0..e7b994e 100644
--- a/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.transaction.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.transaction.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml
index 74dbfca..a8693fe 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.client.ui.feature"
       label="EMFStore Client UI"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.client.ui"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all plugins to provide user interfaces
diff --git a/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml
index e084185..38c4d91 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml
index f1a0e02..e6b5d7d 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature"
       label="HistoryBrowserComparator"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.client.ui.historybrowsercomparator"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature adds a comparator to EMFStore&apos;s history browser.
@@ -23,8 +23,8 @@
    <requires>
       <import plugin="org.eclipse.emf.compare" version="3.0.0" match="compatible"/>
       <import plugin="org.eclipse.compare" version="3.5.300" match="compatible"/>
-      <import plugin="org.eclipse.emf.emfstore.client" version="1.7.0" match="compatible"/>
-      <import plugin="org.eclipse.emf.emfstore.client.ui" version="1.7.0" match="compatible"/>
+      <import plugin="org.eclipse.emf.emfstore.client" version="1.8.0" match="compatible"/>
+      <import plugin="org.eclipse.emf.emfstore.client.ui" version="1.8.0" match="compatible"/>
       <import plugin="org.eclipse.emf.compare.ide.ui" version="4.0.0" match="compatible"/>
       <import plugin="org.eclipse.emf.compare.ide" version="3.1.0" match="compatible"/>
       <import plugin="org.eclipse.emf.compare.edit" version="4.0.0" match="compatible"/>
diff --git a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml
index c358ecd..98a017a 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.historybrowsercomparator.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.client.ui.rap.feature/feature.xml b/features/org.eclipse.emf.emfstore.client.ui.rap.feature/feature.xml
index 712c37f..0152e9c 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.rap.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.rap.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.client.ui.rap.feature"
       label="EMFStore Client UI RAP"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.client.ui"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all plugins to provide user interfaces
diff --git a/features/org.eclipse.emf.emfstore.client.ui.rap.feature/pom.xml b/features/org.eclipse.emf.emfstore.client.ui.rap.feature/pom.xml
index fb8ced3..d7dbee8 100644
--- a/features/org.eclipse.emf.emfstore.client.ui.rap.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.client.ui.rap.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.rap.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.common.feature/feature.xml b/features/org.eclipse.emf.emfstore.common.feature/feature.xml
index 2a1e8fa..54ac5a8 100644
--- a/features/org.eclipse.emf.emfstore.common.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.common.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.common.feature"
       label="EMFStore Common"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.common"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       Contains common plugins of EMFStore that are used by other EMFStore features.
diff --git a/features/org.eclipse.emf.emfstore.common.feature/pom.xml b/features/org.eclipse.emf.emfstore.common.feature/pom.xml
index 11f364f..7852874 100644
--- a/features/org.eclipse.emf.emfstore.common.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.common.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.common.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml b/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml
index f158b15..656a9a7 100644
--- a/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.ecore.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.ecore.feature"
       label="EMFStore Ecore"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.ecore"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       Contains ecore plugin of EMFStore that is used by other EMFStore features.
diff --git a/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml b/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml
index cca0f71..726fbe3 100644
--- a/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.ecore.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.ecore.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.example.feature/feature.xml b/features/org.eclipse.emf.emfstore.example.feature/feature.xml
index 1404166..501ce7f 100644
--- a/features/org.eclipse.emf.emfstore.example.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.example.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.example.feature"
       label="EMFStore Code Examples"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.example.installer"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org ">
       EMFStore Code Examples
diff --git a/features/org.eclipse.emf.emfstore.example.feature/pom.xml b/features/org.eclipse.emf.emfstore.example.feature/pom.xml
index 79266ff..3a736bd 100644
--- a/features/org.eclipse.emf.emfstore.example.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.example.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.example.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml b/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml
index d220d53..10fcafe 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.fuzzy.feature"
       label="Fuzzy Testing Feature"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.branding"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains the fuzzy testing framework and the EMFDataProvider
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml b/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml
index d150fd3..8dab069 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.fuzzy.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml
index 86990ce..e779354 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.emfstore.fuzzy.test.feature"
       label="EMFStore Fuzzy Tests"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://www.example.com/description">
       This feature contains the integration plugins for EMFStore with fuzzy testing.
diff --git a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml
index aded925..bf3c0d4 100644
--- a/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.fuzzy.test.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.fuzzy.test.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.emfstore.license.feature/feature.xml b/features/org.eclipse.emf.emfstore.license.feature/feature.xml
index b15a39a..be551c9 100644
--- a/features/org.eclipse.emf.emfstore.license.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.license.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.emfstore.license.feature"
       label="EMFStore License"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description>
diff --git a/features/org.eclipse.emf.emfstore.license.feature/pom.xml b/features/org.eclipse.emf.emfstore.license.feature/pom.xml
index 0152966..cae0d98 100644
--- a/features/org.eclipse.emf.emfstore.license.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.license.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.license.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.migration.cope.feature/.project b/features/org.eclipse.emf.emfstore.migration.cope.feature/.project
deleted file mode 100644
index 7c58fc5..0000000
--- a/features/org.eclipse.emf.emfstore.migration.cope.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.emf.emfstore.migration.edapt.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4824b80..0000000
--- a/features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
diff --git a/features/org.eclipse.emf.emfstore.migration.edapt.feature/feature.xml b/features/org.eclipse.emf.emfstore.migration.edapt.feature/feature.xml
index 4e55d1c..7fab61c 100644
--- a/features/org.eclipse.emf.emfstore.migration.edapt.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.migration.edapt.feature/feature.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.emf.emfstore.migration.edapt.feature"
-      label="EMFStore Edapt Migration"
-      version="1.0.0.qualifier"
-      provider-name="Eclipse Modeling Project"
-      license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.2.0.qualifier">
-
-   <description url="http://emfstore.org">
-      This feature contains all plugins to migrate EMFStore-hosted models
-with Edapt.
-   </description>
-
-   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.emf.emfstore.migration.edapt.feature"
+      label="EMFStore Edapt Migration"
+      version="1.8.0.qualifier"
+      provider-name="Eclipse Modeling Project"
+      license-feature="org.eclipse.emf.emfstore.license.feature"
+      license-feature-version="1.8.0.qualifier">
+
+   <description url="http://emfstore.org">
+      This feature contains all plugins to migrate EMFStore-hosted
+models with Edapt.
+   </description>
+
+   <copyright url="http://www.eclipse.org/legal/epl-v10.html">
       Copyright (c) 2008-2011 Chair for Applied Software Engineering,
 Technische Universitaet Muenchen.
 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License
 v1.0
 which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/epl-v10.html
-   </copyright>
-
-   <license url="http://www.eclipse.org/legal/epl-v10.html">
+http://www.eclipse.org/legal/epl-v10.html
+   </copyright>
+
+   <license url="http://www.eclipse.org/legal/epl-v10.html">
       Eclipse Public License - v 1.0
 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS
 ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR
@@ -218,23 +218,23 @@
 No party to this Agreement will bring a legal action under this
 Agreement more than one year after the cause of action arose.
 Each party waives its rights to a jury trial in any resulting
-litigation.
-   </license>
-
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.emf.emfstore.migration"/>
-      <import plugin="org.eclipse.emf.edapt.migration" version="0.3.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.emf.edapt.common" version="0.3.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.emf.edapt.declaration" version="0.3.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.emf.edapt.history" version="0.3.0" match="greaterOrEqual"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.emf.emfstore.migration.edapt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
+litigation.
+   </license>
+
+   <requires>
+      <import plugin="org.eclipse.emf.emfstore.migration" version="1.8.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.runtime" version="3.5.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.emf.common" version="2.5.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.emf.edapt.migration" version="1.2.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.emf.edapt.history" version="1.2.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.emf.emfstore.common.model" version="1.8.0" match="greaterOrEqual"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.emf.emfstore.migration.edapt"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.emfstore.migration.edapt.feature/pom.xml b/features/org.eclipse.emf.emfstore.migration.edapt.feature/pom.xml
new file mode 100644
index 0000000..5a13967
--- /dev/null
+++ b/features/org.eclipse.emf.emfstore.migration.edapt.feature/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.emf.emfstore</groupId>
+    <artifactId>emfstore-features-parent</artifactId>
+    <version>1.8.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.emfstore</groupId>
+  <artifactId>org.eclipse.emf.emfstore.migration.edapt.feature</artifactId>
+  <version>1.8.0-SNAPSHOT</version>
+  <packaging>eclipse-feature</packaging>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.eclipse.tycho.extras</groupId>
+        <artifactId>tycho-source-feature-plugin</artifactId>
+        <version>${tycho-version}</version>
+        <executions>
+          <execution>
+            <id>source-feature</id>
+            <phase>package</phase>
+            <goals>
+              <goal>source-feature</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.eclipse.tycho</groupId>
+        <artifactId>tycho-p2-plugin</artifactId>
+        <version>${tycho-version}</version>
+        <executions>
+          <execution>
+            <id>attached-p2-metadata</id>
+            <phase>package</phase>
+            <goals>
+              <goal>p2-metadata</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml b/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml
index ab743a6..0ef7c7b 100644
--- a/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.modelmutator.feature/feature.xml
@@ -6,7 +6,7 @@
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.modelmutator"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       Contains a set of plugins that may be used to alter existing
diff --git a/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml b/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml
index aa1b8a4..2e7653c 100644
--- a/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.modelmutator.feature/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/features/org.eclipse.emf.emfstore.mongodb.client.feature/feature.xml b/features/org.eclipse.emf.emfstore.mongodb.client.feature/feature.xml
index 215b3d9..a2528a0 100644
--- a/features/org.eclipse.emf.emfstore.mongodb.client.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.mongodb.client.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.mongodb.client.feature"
       label="EMFStore mongoDB Client Feature"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.mongodb.client"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all plugins to run the EMFStore client
diff --git a/features/org.eclipse.emf.emfstore.mongodb.client.feature/pom.xml b/features/org.eclipse.emf.emfstore.mongodb.client.feature/pom.xml
index c7374e0..2c6f9d8 100644
--- a/features/org.eclipse.emf.emfstore.mongodb.client.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.mongodb.client.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.mongodb.client.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.mongodb.server.feature/feature.xml b/features/org.eclipse.emf.emfstore.mongodb.server.feature/feature.xml
index 10a2f62..1825452 100644
--- a/features/org.eclipse.emf.emfstore.mongodb.server.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.mongodb.server.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.mongodb.server.feature"
       label="EMFStore mongoDB Server Feature"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.mongodb.server"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all plugins to run the EMFStore server
diff --git a/features/org.eclipse.emf.emfstore.mongodb.server.feature/pom.xml b/features/org.eclipse.emf.emfstore.mongodb.server.feature/pom.xml
index 11dff03..22ac5b5 100644
--- a/features/org.eclipse.emf.emfstore.mongodb.server.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.mongodb.server.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.mongodb.server.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml b/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml
index eb927a9..f68a55b 100644
--- a/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.sdk.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.sdk.feature"
       label="EMFStore SDK"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.branding"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all core plugins including sources to use the EMFStore.
diff --git a/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml b/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml
index c86df92..10e592e 100644
--- a/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.sdk.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.sdk.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.emfstore.server.feature/feature.xml b/features/org.eclipse.emf.emfstore.server.feature/feature.xml
index 9ffa685..60df487 100644
--- a/features/org.eclipse.emf.emfstore.server.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.server.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.server.feature"
       label="EMFStore Server"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.server"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all plugins to run the EMFStore server.
diff --git a/features/org.eclipse.emf.emfstore.server.feature/pom.xml b/features/org.eclipse.emf.emfstore.server.feature/pom.xml
index 783eb44..01ab90f 100644
--- a/features/org.eclipse.emf.emfstore.server.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.server.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.server.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/features/org.eclipse.emf.emfstore.test.feature/feature.xml b/features/org.eclipse.emf.emfstore.test.feature/feature.xml
index e51dae1..62ae06a 100644
--- a/features/org.eclipse.emf.emfstore.test.feature/feature.xml
+++ b/features/org.eclipse.emf.emfstore.test.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.emfstore.test.feature"
       label="EMFStore Tests"
-      version="1.7.0.qualifier"
+      version="1.8.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.emfstore.branding"
       license-feature="org.eclipse.emf.emfstore.license.feature"
-      license-feature-version="1.7.0.qualifier">
+      license-feature-version="1.8.0.qualifier">
 
    <description url="http://emfstore.org">
       This feature contains all test plugins as well as helper and utility classes to write custom EMFStore tests.
diff --git a/features/org.eclipse.emf.emfstore.test.feature/pom.xml b/features/org.eclipse.emf.emfstore.test.feature/pom.xml
index f2d87eb..bbc0f58 100644
--- a/features/org.eclipse.emf.emfstore.test.feature/pom.xml
+++ b/features/org.eclipse.emf.emfstore.test.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-features-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.features</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.test.feature</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
   <build>
diff --git a/releng/_marketplace/_mpparent/pom.xml b/releng/_marketplace/_mpparent/pom.xml
index 92a9026..407e0ca 100644
--- a/releng/_marketplace/_mpparent/pom.xml
+++ b/releng/_marketplace/_mpparent/pom.xml
@@ -30,11 +30,11 @@
             <configuration>
               <source>
                 <repository>
-                    <url>http://download.eclipse.org/ecp/releases/releases_17/171</url>
+                    <url>http://download.eclipse.org/ecp/releases/releases_18/180_RC4</url>
                     <layout>p2</layout>
                 </repository>
                 <repository>
-                    <url>http://download.eclipse.org/emfstore/releases_16/162</url>
+                    <url>http://download.eclipse.org/emfstore/releases_17/170</url>
                     <layout>p2</layout>
                 </repository>
               </source>
diff --git a/releng/_target/emfstore-mars.target b/releng/_target/emfstore-mars.target
new file mode 100644
index 0000000..56ed01a
--- /dev/null
+++ b/releng/_target/emfstore-mars.target
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="EMFStore" sequenceNumber="241">
+<locations>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.ecp.view.categorization.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.treemasterdetail.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.label.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.sdk.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.model.controls.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.custom.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.emfstore.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.demo.e3.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.e4.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.viewmodel.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.e3.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.cdo.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.rule.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.template.helper.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.workspace.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.table.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.model.editor.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.unset.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.validation.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.emfforms.runtime.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.groupedgrid.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.ecore.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.separator.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.vertical.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.group.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.horizontal.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.view.template.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.ecp.demo.e4.feature.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_12"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.platform.ide" version="0.0.0"/>
+<unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
+<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.platform.sdk" version="0.0.0"/>
+<unit id="org.eclipse.pde.source.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/eclipse/updates/4.5"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.log4j.source" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="0.0.0"/>
+<unit id="org.hamcrest.core" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.forms.feature.group" version="0.0.0"/>
+<unit id="org.apache.log4j" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="0.0.0"/>
+<unit id="org.hamcrest.library.source" version="0.0.0"/>
+<unit id="org.hamcrest.library" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
+<unit id="org.hamcrest.core.source" version="0.0.0"/>
+<repository location="http://download.eclipse.org/technology/swtbot/releases/latest/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipselabs.mongo.emf.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipselabs.mongo.emf.feature.source.feature.group" version="0.0.0"/>
+<repository location="http://bryanhunt.github.com/mongo-emf/releases/0.7.1"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.compare.source.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases/3.0/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.jetty.sdk.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/juno/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.export.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.transaction.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.graphiti.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.validation.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.net4j.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.compare.source.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.ocl.all.sdk.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/releases/mars/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="com.google.guava" version="0.0.0"/>
+<unit id="javax.annotation" version="0.0.0"/>
+<unit id="javax.annotation.source" version="0.0.0"/>
+<unit id="com.google.guava.source" version="0.0.0"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20151221205849/repository/"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.edapt.runtime.feature.source.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/edapt/p2/nightly"/>
+</location>
+</locations>
+</target>
diff --git a/releng/_target/emfstore-rap.target b/releng/_target/emfstore-rap.target
index a344003..f52f40c 100644
--- a/releng/_target/emfstore-rap.target
+++ b/releng/_target/emfstore-rap.target
@@ -88,4 +88,1194 @@
 <repository location="http://download.eclipse.org/rt/rap/incubator/2.3/fileupload/"/>
 </location>
 </locations>
+<includeBundles>
+<plugin id="ch.qos.logback.classic"/>
+<plugin id="ch.qos.logback.classic.source"/>
+<plugin id="ch.qos.logback.core"/>
+<plugin id="ch.qos.logback.core.source"/>
+<plugin id="ch.qos.logback.slf4j"/>
+<plugin id="com.google.guava"/>
+<plugin id="com.google.guava.source"/>
+<plugin id="com.ibm.icu"/>
+<plugin id="com.ibm.icu.base"/>
+<plugin id="com.ibm.icu.base.source"/>
+<plugin id="com.ibm.icu.source"/>
+<plugin id="com.jcraft.jsch"/>
+<plugin id="com.jcraft.jsch.source"/>
+<plugin id="com.sun.el" version="2.2.0.v201108011116"/>
+<plugin id="com.sun.el" version="2.2.0.v201108011116"/>
+<plugin id="com.sun.el.source" version="2.2.0.v201108011116"/>
+<plugin id="com.sun.el.source" version="2.2.0.v201108011116"/>
+<plugin id="javax.annotation"/>
+<plugin id="javax.el" version="2.2.0.v201108011116"/>
+<plugin id="javax.el" version="2.2.0.v201108011116"/>
+<plugin id="javax.el.source" version="2.2.0.v201108011116"/>
+<plugin id="javax.el.source" version="2.2.0.v201108011116"/>
+<plugin id="javax.inject"/>
+<plugin id="javax.inject.source"/>
+<plugin id="javax.servlet" version="3.0.0.v201112011016"/>
+<plugin id="javax.servlet" version="3.0.0.v201112011016"/>
+<plugin id="javax.servlet" version="3.0.0.v201112011016"/>
+<plugin id="javax.servlet.jsp" version="2.2.0.v201112011158"/>
+<plugin id="javax.servlet.jsp" version="2.2.0.v201112011158"/>
+<plugin id="javax.servlet.jsp.jstl"/>
+<plugin id="javax.servlet.jsp.jstl.source"/>
+<plugin id="javax.servlet.jsp.source" version="2.2.0.v201112011158"/>
+<plugin id="javax.servlet.jsp.source" version="2.2.0.v201112011158"/>
+<plugin id="javax.servlet.source" version="3.0.0.v201112011016"/>
+<plugin id="javax.servlet.source" version="3.0.0.v201112011016"/>
+<plugin id="javax.servlet.source" version="3.0.0.v201112011016"/>
+<plugin id="javax.xml" version="1.3.4.v201005080400"/>
+<plugin id="javax.xml" version="1.3.4.v201005080400"/>
+<plugin id="org.apache.ant"/>
+<plugin id="org.apache.ant.source"/>
+<plugin id="org.apache.batik.css" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.css" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.css.source" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.css.source" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.dom"/>
+<plugin id="org.apache.batik.dom.source"/>
+<plugin id="org.apache.batik.ext.awt"/>
+<plugin id="org.apache.batik.ext.awt.source"/>
+<plugin id="org.apache.batik.svggen"/>
+<plugin id="org.apache.batik.svggen.source"/>
+<plugin id="org.apache.batik.util" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.util" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.util.gui" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.util.gui" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.util.gui.source" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.util.gui.source" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.util.source" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.util.source" version="1.6.0.v201011041432"/>
+<plugin id="org.apache.batik.xml"/>
+<plugin id="org.apache.batik.xml.source"/>
+<plugin id="org.apache.commons.codec" version="1.3.0.v201101211617"/>
+<plugin id="org.apache.commons.codec" version="1.6.0.v201305230611"/>
+<plugin id="org.apache.commons.codec.source" version="1.3.0.v201101211617"/>
+<plugin id="org.apache.commons.codec.source" version="1.6.0.v201305230611"/>
+<plugin id="org.apache.commons.fileupload"/>
+<plugin id="org.apache.commons.httpclient" version="3.1.0.v201012070820"/>
+<plugin id="org.apache.commons.httpclient" version="3.1.0.v201012070820"/>
+<plugin id="org.apache.commons.httpclient.source" version="3.1.0.v201012070820"/>
+<plugin id="org.apache.commons.httpclient.source" version="3.1.0.v201012070820"/>
+<plugin id="org.apache.commons.io"/>
+<plugin id="org.apache.commons.logging" version="1.0.4.v201101211617"/>
+<plugin id="org.apache.commons.logging" version="1.1.1.v201101211721"/>
+<plugin id="org.apache.commons.logging.source" version="1.1.1.v201101211721"/>
+<plugin id="org.apache.commons.logging.source" version="1.0.4.v201101211617"/>
+<plugin id="org.apache.derby.source"/>
+<plugin id="org.apache.felix.gogo.command" version="0.8.0.v201108120515"/>
+<plugin id="org.apache.felix.gogo.command" version="0.10.0.v201209301215"/>
+<plugin id="org.apache.felix.gogo.command.source" version="0.10.0.v201209301215"/>
+<plugin id="org.apache.felix.gogo.command.source" version="0.8.0.v201108120515"/>
+<plugin id="org.apache.felix.gogo.runtime" version="0.10.0.v201209301036"/>
+<plugin id="org.apache.felix.gogo.runtime" version="0.8.0.v201108120515"/>
+<plugin id="org.apache.felix.gogo.runtime.source" version="0.10.0.v201209301036"/>
+<plugin id="org.apache.felix.gogo.runtime.source" version="0.8.0.v201108120515"/>
+<plugin id="org.apache.felix.gogo.shell" version="0.8.0.v201110170705"/>
+<plugin id="org.apache.felix.gogo.shell" version="0.10.0.v201212101605"/>
+<plugin id="org.apache.felix.gogo.shell.source" version="0.10.0.v201212101605"/>
+<plugin id="org.apache.felix.gogo.shell.source" version="0.8.0.v201110170705"/>
+<plugin id="org.apache.jasper.glassfish" version="2.2.2.v201205150955"/>
+<plugin id="org.apache.jasper.glassfish" version="2.2.2.v201205150955"/>
+<plugin id="org.apache.jasper.glassfish.source" version="2.2.2.v201205150955"/>
+<plugin id="org.apache.jasper.glassfish.source" version="2.2.2.v201205150955"/>
+<plugin id="org.apache.log4j"/>
+<plugin id="org.apache.log4j.source"/>
+<plugin id="org.apache.lucene"/>
+<plugin id="org.apache.lucene.analysis"/>
+<plugin id="org.apache.lucene.analysis.source"/>
+<plugin id="org.apache.lucene.core"/>
+<plugin id="org.apache.lucene.core.source"/>
+<plugin id="org.apache.lucene.source"/>
+<plugin id="org.apache.mina.core"/>
+<plugin id="org.apache.mina.core.source"/>
+<plugin id="org.apache.sshd.core"/>
+<plugin id="org.apache.sshd.core.source"/>
+<plugin id="org.apache.taglibs.standard.glassfish"/>
+<plugin id="org.apache.taglibs.standard.glassfish.source"/>
+<plugin id="org.eclipse.ant.core"/>
+<plugin id="org.eclipse.ant.core.source"/>
+<plugin id="org.eclipse.ant.launching"/>
+<plugin id="org.eclipse.ant.launching.source"/>
+<plugin id="org.eclipse.ant.ui"/>
+<plugin id="org.eclipse.ant.ui.source"/>
+<plugin id="org.eclipse.compare"/>
+<plugin id="org.eclipse.compare.core"/>
+<plugin id="org.eclipse.compare.core.source"/>
+<plugin id="org.eclipse.compare.source"/>
+<plugin id="org.eclipse.compare.win32"/>
+<plugin id="org.eclipse.compare.win32.source"/>
+<plugin id="org.eclipse.core.commands" version="3.6.100.v20140528-1422"/>
+<plugin id="org.eclipse.core.commands" version="3.6.2.v20130123-162658"/>
+<plugin id="org.eclipse.core.commands.source" version="3.6.100.v20140528-1422"/>
+<plugin id="org.eclipse.core.commands.source" version="3.6.2.v20130123-162658"/>
+<plugin id="org.eclipse.core.contenttype" version="3.4.200.v20140207-1251"/>
+<plugin id="org.eclipse.core.contenttype" version="3.4.200.v20120523-2004"/>
+<plugin id="org.eclipse.core.contenttype.source" version="3.4.200.v20140207-1251"/>
+<plugin id="org.eclipse.core.contenttype.source" version="3.4.200.v20120523-2004"/>
+<plugin id="org.eclipse.core.databinding" version="1.4.2.v20140729-1044"/>
+<plugin id="org.eclipse.core.databinding" version="1.4.1.v20120912-132807"/>
+<plugin id="org.eclipse.core.databinding.beans" version="1.2.200.v20120523-1955"/>
+<plugin id="org.eclipse.core.databinding.beans" version="1.2.200.v20140214-0004"/>
+<plugin id="org.eclipse.core.databinding.beans.source" version="1.2.200.v20140214-0004"/>
+<plugin id="org.eclipse.core.databinding.beans.source" version="1.2.200.v20120523-1955"/>
+<plugin id="org.eclipse.core.databinding.observable" version="1.4.1.v20120521-2329"/>
+<plugin id="org.eclipse.core.databinding.observable" version="1.4.1.v20140210-1835"/>
+<plugin id="org.eclipse.core.databinding.observable.source" version="1.4.1.v20120521-2329"/>
+<plugin id="org.eclipse.core.databinding.observable.source" version="1.4.1.v20140210-1835"/>
+<plugin id="org.eclipse.core.databinding.property" version="1.4.200.v20140214-0004"/>
+<plugin id="org.eclipse.core.databinding.property" version="1.4.100.v20120523-1955"/>
+<plugin id="org.eclipse.core.databinding.property.source" version="1.4.200.v20140214-0004"/>
+<plugin id="org.eclipse.core.databinding.property.source" version="1.4.100.v20120523-1955"/>
+<plugin id="org.eclipse.core.databinding.source" version="1.4.2.v20140729-1044"/>
+<plugin id="org.eclipse.core.databinding.source" version="1.4.1.v20120912-132807"/>
+<plugin id="org.eclipse.core.expressions" version="3.4.600.v20140128-0851"/>
+<plugin id="org.eclipse.core.expressions" version="3.4.401.v20120912-155018"/>
+<plugin id="org.eclipse.core.expressions.source" version="3.4.401.v20120912-155018"/>
+<plugin id="org.eclipse.core.expressions.source" version="3.4.600.v20140128-0851"/>
+<plugin id="org.eclipse.core.externaltools"/>
+<plugin id="org.eclipse.core.externaltools.source"/>
+<plugin id="org.eclipse.core.filebuffers"/>
+<plugin id="org.eclipse.core.filebuffers.source"/>
+<plugin id="org.eclipse.core.filesystem"/>
+<plugin id="org.eclipse.core.filesystem.aix.ppc"/>
+<plugin id="org.eclipse.core.filesystem.aix.ppc64"/>
+<plugin id="org.eclipse.core.filesystem.hpux.ia64_32"/>
+<plugin id="org.eclipse.core.filesystem.linux.ppc"/>
+<plugin id="org.eclipse.core.filesystem.linux.ppc64"/>
+<plugin id="org.eclipse.core.filesystem.linux.x86"/>
+<plugin id="org.eclipse.core.filesystem.linux.x86_64"/>
+<plugin id="org.eclipse.core.filesystem.macosx"/>
+<plugin id="org.eclipse.core.filesystem.solaris.sparc"/>
+<plugin id="org.eclipse.core.filesystem.source"/>
+<plugin id="org.eclipse.core.filesystem.win32.x86"/>
+<plugin id="org.eclipse.core.filesystem.win32.x86_64"/>
+<plugin id="org.eclipse.core.jobs" version="3.5.300.v20120912-155018"/>
+<plugin id="org.eclipse.core.jobs" version="3.6.1.v20141014-1248"/>
+<plugin id="org.eclipse.core.jobs.source" version="3.6.1.v20141014-1248"/>
+<plugin id="org.eclipse.core.jobs.source" version="3.5.300.v20120912-155018"/>
+<plugin id="org.eclipse.core.net"/>
+<plugin id="org.eclipse.core.net.linux.x86"/>
+<plugin id="org.eclipse.core.net.linux.x86_64"/>
+<plugin id="org.eclipse.core.net.source"/>
+<plugin id="org.eclipse.core.net.win32.x86"/>
+<plugin id="org.eclipse.core.net.win32.x86_64"/>
+<plugin id="org.eclipse.core.resources"/>
+<plugin id="org.eclipse.core.resources.source"/>
+<plugin id="org.eclipse.core.resources.win32.x86"/>
+<plugin id="org.eclipse.core.runtime" version="3.10.0.v20140318-2214"/>
+<plugin id="org.eclipse.core.runtime" version="3.8.0.v20120912-155025"/>
+<plugin id="org.eclipse.core.runtime.compatibility"/>
+<plugin id="org.eclipse.core.runtime.compatibility.registry"/>
+<plugin id="org.eclipse.core.runtime.compatibility.registry.source"/>
+<plugin id="org.eclipse.core.runtime.compatibility.source"/>
+<plugin id="org.eclipse.core.runtime.source" version="3.10.0.v20140318-2214"/>
+<plugin id="org.eclipse.core.runtime.source" version="3.8.0.v20120912-155025"/>
+<plugin id="org.eclipse.core.variables"/>
+<plugin id="org.eclipse.core.variables.source"/>
+<plugin id="org.eclipse.debug.core"/>
+<plugin id="org.eclipse.debug.core.source"/>
+<plugin id="org.eclipse.debug.ui"/>
+<plugin id="org.eclipse.debug.ui.source"/>
+<plugin id="org.eclipse.draw2d"/>
+<plugin id="org.eclipse.draw2d.doc.isv"/>
+<plugin id="org.eclipse.draw2d.source"/>
+<plugin id="org.eclipse.e4.core.commands"/>
+<plugin id="org.eclipse.e4.core.commands.source"/>
+<plugin id="org.eclipse.e4.core.contexts"/>
+<plugin id="org.eclipse.e4.core.contexts.source"/>
+<plugin id="org.eclipse.e4.core.di"/>
+<plugin id="org.eclipse.e4.core.di.extensions"/>
+<plugin id="org.eclipse.e4.core.di.extensions.source"/>
+<plugin id="org.eclipse.e4.core.di.source"/>
+<plugin id="org.eclipse.e4.core.services"/>
+<plugin id="org.eclipse.e4.core.services.source"/>
+<plugin id="org.eclipse.e4.ui.bindings"/>
+<plugin id="org.eclipse.e4.ui.bindings.source"/>
+<plugin id="org.eclipse.e4.ui.css.core"/>
+<plugin id="org.eclipse.e4.ui.css.core.source"/>
+<plugin id="org.eclipse.e4.ui.css.swt"/>
+<plugin id="org.eclipse.e4.ui.css.swt.source"/>
+<plugin id="org.eclipse.e4.ui.css.swt.theme"/>
+<plugin id="org.eclipse.e4.ui.css.swt.theme.source"/>
+<plugin id="org.eclipse.e4.ui.di"/>
+<plugin id="org.eclipse.e4.ui.di.source"/>
+<plugin id="org.eclipse.e4.ui.model.workbench"/>
+<plugin id="org.eclipse.e4.ui.model.workbench.source"/>
+<plugin id="org.eclipse.e4.ui.services"/>
+<plugin id="org.eclipse.e4.ui.services.source"/>
+<plugin id="org.eclipse.e4.ui.widgets"/>
+<plugin id="org.eclipse.e4.ui.widgets.source"/>
+<plugin id="org.eclipse.e4.ui.workbench"/>
+<plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
+<plugin id="org.eclipse.e4.ui.workbench.addons.swt.source"/>
+<plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
+<plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa"/>
+<plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa.source"/>
+<plugin id="org.eclipse.e4.ui.workbench.renderers.swt.source"/>
+<plugin id="org.eclipse.e4.ui.workbench.source"/>
+<plugin id="org.eclipse.e4.ui.workbench.swt"/>
+<plugin id="org.eclipse.e4.ui.workbench.swt.source"/>
+<plugin id="org.eclipse.e4.ui.workbench3"/>
+<plugin id="org.eclipse.e4.ui.workbench3.source"/>
+<plugin id="org.eclipse.ecf"/>
+<plugin id="org.eclipse.ecf.filetransfer"/>
+<plugin id="org.eclipse.ecf.filetransfer.source"/>
+<plugin id="org.eclipse.ecf.identity"/>
+<plugin id="org.eclipse.ecf.identity.source"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer.httpclient"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.source"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl.source"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer.source"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer.ssl"/>
+<plugin id="org.eclipse.ecf.provider.filetransfer.ssl.source"/>
+<plugin id="org.eclipse.ecf.source"/>
+<plugin id="org.eclipse.ecf.ssl"/>
+<plugin id="org.eclipse.ecf.ssl.source"/>
+<plugin id="org.eclipse.emf"/>
+<plugin id="org.eclipse.emf.ant"/>
+<plugin id="org.eclipse.emf.ant.source"/>
+<plugin id="org.eclipse.emf.cdo"/>
+<plugin id="org.eclipse.emf.cdo.admin"/>
+<plugin id="org.eclipse.emf.cdo.admin.source"/>
+<plugin id="org.eclipse.emf.cdo.common"/>
+<plugin id="org.eclipse.emf.cdo.common.db"/>
+<plugin id="org.eclipse.emf.cdo.common.db.source"/>
+<plugin id="org.eclipse.emf.cdo.common.source"/>
+<plugin id="org.eclipse.emf.cdo.compare"/>
+<plugin id="org.eclipse.emf.cdo.compare.source"/>
+<plugin id="org.eclipse.emf.cdo.defs"/>
+<plugin id="org.eclipse.emf.cdo.defs.source"/>
+<plugin id="org.eclipse.emf.cdo.doc"/>
+<plugin id="org.eclipse.emf.cdo.doc.source"/>
+<plugin id="org.eclipse.emf.cdo.ecore.retrofit"/>
+<plugin id="org.eclipse.emf.cdo.ecore.retrofit.source"/>
+<plugin id="org.eclipse.emf.cdo.edit"/>
+<plugin id="org.eclipse.emf.cdo.edit.source"/>
+<plugin id="org.eclipse.emf.cdo.efs"/>
+<plugin id="org.eclipse.emf.cdo.efs.source"/>
+<plugin id="org.eclipse.emf.cdo.examples.installer"/>
+<plugin id="org.eclipse.emf.cdo.examples.installer.source"/>
+<plugin id="org.eclipse.emf.cdo.expressions"/>
+<plugin id="org.eclipse.emf.cdo.expressions.edit"/>
+<plugin id="org.eclipse.emf.cdo.expressions.edit.source"/>
+<plugin id="org.eclipse.emf.cdo.expressions.editor"/>
+<plugin id="org.eclipse.emf.cdo.expressions.editor.source"/>
+<plugin id="org.eclipse.emf.cdo.expressions.source"/>
+<plugin id="org.eclipse.emf.cdo.location"/>
+<plugin id="org.eclipse.emf.cdo.location.source"/>
+<plugin id="org.eclipse.emf.cdo.migrator"/>
+<plugin id="org.eclipse.emf.cdo.migrator.source"/>
+<plugin id="org.eclipse.emf.cdo.net4j"/>
+<plugin id="org.eclipse.emf.cdo.net4j.source"/>
+<plugin id="org.eclipse.emf.cdo.sdk"/>
+<plugin id="org.eclipse.emf.cdo.sdk.source"/>
+<plugin id="org.eclipse.emf.cdo.security"/>
+<plugin id="org.eclipse.emf.cdo.security.edit"/>
+<plugin id="org.eclipse.emf.cdo.security.edit.source"/>
+<plugin id="org.eclipse.emf.cdo.security.editor"/>
+<plugin id="org.eclipse.emf.cdo.security.editor.source"/>
+<plugin id="org.eclipse.emf.cdo.security.source"/>
+<plugin id="org.eclipse.emf.cdo.security.ui"/>
+<plugin id="org.eclipse.emf.cdo.security.ui.source"/>
+<plugin id="org.eclipse.emf.cdo.server"/>
+<plugin id="org.eclipse.emf.cdo.server.admin"/>
+<plugin id="org.eclipse.emf.cdo.server.admin.source"/>
+<plugin id="org.eclipse.emf.cdo.server.db"/>
+<plugin id="org.eclipse.emf.cdo.server.db.source"/>
+<plugin id="org.eclipse.emf.cdo.server.lissome"/>
+<plugin id="org.eclipse.emf.cdo.server.lissome.source"/>
+<plugin id="org.eclipse.emf.cdo.server.mongodb"/>
+<plugin id="org.eclipse.emf.cdo.server.mongodb.source"/>
+<plugin id="org.eclipse.emf.cdo.server.net4j"/>
+<plugin id="org.eclipse.emf.cdo.server.net4j.source"/>
+<plugin id="org.eclipse.emf.cdo.server.ocl"/>
+<plugin id="org.eclipse.emf.cdo.server.ocl.source"/>
+<plugin id="org.eclipse.emf.cdo.server.product"/>
+<plugin id="org.eclipse.emf.cdo.server.product.source"/>
+<plugin id="org.eclipse.emf.cdo.server.security"/>
+<plugin id="org.eclipse.emf.cdo.server.security.source"/>
+<plugin id="org.eclipse.emf.cdo.server.source"/>
+<plugin id="org.eclipse.emf.cdo.source"/>
+<plugin id="org.eclipse.emf.cdo.team"/>
+<plugin id="org.eclipse.emf.cdo.team.source"/>
+<plugin id="org.eclipse.emf.cdo.transfer"/>
+<plugin id="org.eclipse.emf.cdo.transfer.repository"/>
+<plugin id="org.eclipse.emf.cdo.transfer.repository.source"/>
+<plugin id="org.eclipse.emf.cdo.transfer.source"/>
+<plugin id="org.eclipse.emf.cdo.transfer.ui"/>
+<plugin id="org.eclipse.emf.cdo.transfer.ui.source"/>
+<plugin id="org.eclipse.emf.cdo.transfer.workspace"/>
+<plugin id="org.eclipse.emf.cdo.transfer.workspace.source"/>
+<plugin id="org.eclipse.emf.cdo.transfer.workspace.ui"/>
+<plugin id="org.eclipse.emf.cdo.transfer.workspace.ui.source"/>
+<plugin id="org.eclipse.emf.cdo.ui"/>
+<plugin id="org.eclipse.emf.cdo.ui.admin"/>
+<plugin id="org.eclipse.emf.cdo.ui.admin.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.compare"/>
+<plugin id="org.eclipse.emf.cdo.ui.compare.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.defs"/>
+<plugin id="org.eclipse.emf.cdo.ui.defs.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.efs"/>
+<plugin id="org.eclipse.emf.cdo.ui.efs.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.ide"/>
+<plugin id="org.eclipse.emf.cdo.ui.ide.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.location"/>
+<plugin id="org.eclipse.emf.cdo.ui.location.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.shared"/>
+<plugin id="org.eclipse.emf.cdo.ui.shared.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.team"/>
+<plugin id="org.eclipse.emf.cdo.ui.team.source"/>
+<plugin id="org.eclipse.emf.cdo.ui.workspace"/>
+<plugin id="org.eclipse.emf.cdo.ui.workspace.source"/>
+<plugin id="org.eclipse.emf.cdo.workspace"/>
+<plugin id="org.eclipse.emf.cdo.workspace.efs"/>
+<plugin id="org.eclipse.emf.cdo.workspace.efs.source"/>
+<plugin id="org.eclipse.emf.cdo.workspace.source"/>
+<plugin id="org.eclipse.emf.cheatsheets"/>
+<plugin id="org.eclipse.emf.cheatsheets.source"/>
+<plugin id="org.eclipse.emf.codegen"/>
+<plugin id="org.eclipse.emf.codegen.ecore"/>
+<plugin id="org.eclipse.emf.codegen.ecore.source"/>
+<plugin id="org.eclipse.emf.codegen.ecore.ui"/>
+<plugin id="org.eclipse.emf.codegen.ecore.ui.source"/>
+<plugin id="org.eclipse.emf.codegen.source"/>
+<plugin id="org.eclipse.emf.codegen.ui"/>
+<plugin id="org.eclipse.emf.codegen.ui.source"/>
+<plugin id="org.eclipse.emf.common"/>
+<plugin id="org.eclipse.emf.common.source"/>
+<plugin id="org.eclipse.emf.common.ui"/>
+<plugin id="org.eclipse.emf.common.ui.source"/>
+<plugin id="org.eclipse.emf.compare"/>
+<plugin id="org.eclipse.emf.compare.diff"/>
+<plugin id="org.eclipse.emf.compare.diff.edit"/>
+<plugin id="org.eclipse.emf.compare.diff.edit.source"/>
+<plugin id="org.eclipse.emf.compare.diff.source"/>
+<plugin id="org.eclipse.emf.compare.doc"/>
+<plugin id="org.eclipse.emf.compare.epatch"/>
+<plugin id="org.eclipse.emf.compare.epatch.source"/>
+<plugin id="org.eclipse.emf.compare.logical.source"/>
+<plugin id="org.eclipse.emf.compare.logical.ui.source"/>
+<plugin id="org.eclipse.emf.compare.match"/>
+<plugin id="org.eclipse.emf.compare.match.source"/>
+<plugin id="org.eclipse.emf.compare.source"/>
+<plugin id="org.eclipse.emf.compare.ui"/>
+<plugin id="org.eclipse.emf.compare.ui.capabilities"/>
+<plugin id="org.eclipse.emf.compare.ui.capabilities.source"/>
+<plugin id="org.eclipse.emf.compare.ui.source"/>
+<plugin id="org.eclipse.emf.converter"/>
+<plugin id="org.eclipse.emf.converter.source"/>
+<plugin id="org.eclipse.emf.databinding"/>
+<plugin id="org.eclipse.emf.databinding.edit"/>
+<plugin id="org.eclipse.emf.databinding.edit.source"/>
+<plugin id="org.eclipse.emf.databinding.source"/>
+<plugin id="org.eclipse.emf.doc"/>
+<plugin id="org.eclipse.emf.ecore"/>
+<plugin id="org.eclipse.emf.ecore.change"/>
+<plugin id="org.eclipse.emf.ecore.change.edit"/>
+<plugin id="org.eclipse.emf.ecore.change.edit.source"/>
+<plugin id="org.eclipse.emf.ecore.change.source"/>
+<plugin id="org.eclipse.emf.ecore.edit"/>
+<plugin id="org.eclipse.emf.ecore.edit.source"/>
+<plugin id="org.eclipse.emf.ecore.editor"/>
+<plugin id="org.eclipse.emf.ecore.editor.source"/>
+<plugin id="org.eclipse.emf.ecore.source"/>
+<plugin id="org.eclipse.emf.ecore.xmi"/>
+<plugin id="org.eclipse.emf.ecore.xmi.source"/>
+<plugin id="org.eclipse.emf.ecp.application.e3"/>
+<plugin id="org.eclipse.emf.ecp.application.e3.source"/>
+<plugin id="org.eclipse.emf.ecp.application.e4"/>
+<plugin id="org.eclipse.emf.ecp.cdo.core"/>
+<plugin id="org.eclipse.emf.ecp.cdo.core.source"/>
+<plugin id="org.eclipse.emf.ecp.cdo.ui"/>
+<plugin id="org.eclipse.emf.ecp.cdo.ui.source"/>
+<plugin id="org.eclipse.emf.ecp.common"/>
+<plugin id="org.eclipse.emf.ecp.common.source"/>
+<plugin id="org.eclipse.emf.ecp.core"/>
+<plugin id="org.eclipse.emf.ecp.core.emffilter"/>
+<plugin id="org.eclipse.emf.ecp.core.emffilter.source"/>
+<plugin id="org.eclipse.emf.ecp.core.source"/>
+<plugin id="org.eclipse.emf.ecp.edit"/>
+<plugin id="org.eclipse.emf.ecp.edit.ecore.swt"/>
+<plugin id="org.eclipse.emf.ecp.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.edit.swt"/>
+<plugin id="org.eclipse.emf.ecp.edit.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.editor.e3"/>
+<plugin id="org.eclipse.emf.ecp.editor.e3.source"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.core"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.core.source"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui.e3"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui.e3.source"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui.e4"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui.e4.source"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui.search"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui.search.source"/>
+<plugin id="org.eclipse.emf.ecp.emfstore.ui.source"/>
+<plugin id="org.eclipse.emf.ecp.explorereditorbridge"/>
+<plugin id="org.eclipse.emf.ecp.explorereditorbridge.source"/>
+<plugin id="org.eclipse.emf.ecp.ui"/>
+<plugin id="org.eclipse.emf.ecp.ui.e3"/>
+<plugin id="org.eclipse.emf.ecp.ui.e3.source"/>
+<plugin id="org.eclipse.emf.ecp.ui.e4"/>
+<plugin id="org.eclipse.emf.ecp.ui.e4.source"/>
+<plugin id="org.eclipse.emf.ecp.ui.rcp"/>
+<plugin id="org.eclipse.emf.ecp.ui.rcp.source"/>
+<plugin id="org.eclipse.emf.ecp.ui.source"/>
+<plugin id="org.eclipse.emf.ecp.ui.view"/>
+<plugin id="org.eclipse.emf.ecp.ui.view.editor.controls"/>
+<plugin id="org.eclipse.emf.ecp.ui.view.editor.controls.source"/>
+<plugin id="org.eclipse.emf.ecp.ui.view.source"/>
+<plugin id="org.eclipse.emf.ecp.ui.view.swt"/>
+<plugin id="org.eclipse.emf.ecp.ui.view.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.validation"/>
+<plugin id="org.eclipse.emf.ecp.validation.connector"/>
+<plugin id="org.eclipse.emf.ecp.validation.connector.source"/>
+<plugin id="org.eclipse.emf.ecp.validation.source"/>
+<plugin id="org.eclipse.emf.ecp.view.categorization.model"/>
+<plugin id="org.eclipse.emf.ecp.view.categorization.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.categorization.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.categorization.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.categorization.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.categorization.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.context"/>
+<plugin id="org.eclipse.emf.ecp.view.context.locale"/>
+<plugin id="org.eclipse.emf.ecp.view.context.locale.source"/>
+<plugin id="org.eclipse.emf.ecp.view.context.source"/>
+<plugin id="org.eclipse.emf.ecp.view.core.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.core.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.model"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.ui"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.ui.source"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.custom.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.group.model"/>
+<plugin id="org.eclipse.emf.ecp.view.group.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.group.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.group.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.group.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.group.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.groupedgrid.model"/>
+<plugin id="org.eclipse.emf.ecp.view.groupedgrid.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.groupedgrid.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.horizontal.model"/>
+<plugin id="org.eclipse.emf.ecp.view.horizontal.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.horizontal.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.horizontal.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.horizontal.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.horizontal.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.label.model"/>
+<plugin id="org.eclipse.emf.ecp.view.label.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.label.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.label.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.label.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.label.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.model"/>
+<plugin id="org.eclipse.emf.ecp.view.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.model.editor"/>
+<plugin id="org.eclipse.emf.ecp.view.model.editor.source"/>
+<plugin id="org.eclipse.emf.ecp.view.model.provider.generator"/>
+<plugin id="org.eclipse.emf.ecp.view.model.provider.generator.source"/>
+<plugin id="org.eclipse.emf.ecp.view.model.provider.xmi"/>
+<plugin id="org.eclipse.emf.ecp.view.model.provider.xmi.source"/>
+<plugin id="org.eclipse.emf.ecp.view.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.rule"/>
+<plugin id="org.eclipse.emf.ecp.view.rule.model"/>
+<plugin id="org.eclipse.emf.ecp.view.rule.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.rule.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.rule.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.rule.source"/>
+<plugin id="org.eclipse.emf.ecp.view.separator.model"/>
+<plugin id="org.eclipse.emf.ecp.view.separator.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.separator.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.separator.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.separator.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.separator.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.table.columnservice"/>
+<plugin id="org.eclipse.emf.ecp.view.table.columnservice.source"/>
+<plugin id="org.eclipse.emf.ecp.view.table.editor"/>
+<plugin id="org.eclipse.emf.ecp.view.table.editor.source"/>
+<plugin id="org.eclipse.emf.ecp.view.table.model"/>
+<plugin id="org.eclipse.emf.ecp.view.table.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.table.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.table.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.table.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.table.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.template.controls.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.template.controls.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.template.model"/>
+<plugin id="org.eclipse.emf.ecp.view.template.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.template.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.template.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.template.service"/>
+<plugin id="org.eclipse.emf.ecp.view.template.service.source"/>
+<plugin id="org.eclipse.emf.ecp.view.treemasterdetail.model"/>
+<plugin id="org.eclipse.emf.ecp.view.treemasterdetail.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.treemasterdetail.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.treemasterdetail.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.treemasterdetail.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.view.unset"/>
+<plugin id="org.eclipse.emf.ecp.view.unset.source"/>
+<plugin id="org.eclipse.emf.ecp.view.validation"/>
+<plugin id="org.eclipse.emf.ecp.view.validation.source"/>
+<plugin id="org.eclipse.emf.ecp.view.vertical.model"/>
+<plugin id="org.eclipse.emf.ecp.view.vertical.model.edit"/>
+<plugin id="org.eclipse.emf.ecp.view.vertical.model.edit.source"/>
+<plugin id="org.eclipse.emf.ecp.view.vertical.model.source"/>
+<plugin id="org.eclipse.emf.ecp.view.vertical.ui.swt"/>
+<plugin id="org.eclipse.emf.ecp.view.vertical.ui.swt.source"/>
+<plugin id="org.eclipse.emf.ecp.workspace.core"/>
+<plugin id="org.eclipse.emf.ecp.workspace.core.source"/>
+<plugin id="org.eclipse.emf.ecp.workspace.ui"/>
+<plugin id="org.eclipse.emf.ecp.workspace.ui.source"/>
+<plugin id="org.eclipse.emf.edit"/>
+<plugin id="org.eclipse.emf.edit.source"/>
+<plugin id="org.eclipse.emf.edit.ui"/>
+<plugin id="org.eclipse.emf.edit.ui.source"/>
+<plugin id="org.eclipse.emf.example.installer"/>
+<plugin id="org.eclipse.emf.exporter"/>
+<plugin id="org.eclipse.emf.exporter.source"/>
+<plugin id="org.eclipse.emf.importer"/>
+<plugin id="org.eclipse.emf.importer.ecore"/>
+<plugin id="org.eclipse.emf.importer.ecore.source"/>
+<plugin id="org.eclipse.emf.importer.java"/>
+<plugin id="org.eclipse.emf.importer.java.source"/>
+<plugin id="org.eclipse.emf.importer.rose"/>
+<plugin id="org.eclipse.emf.importer.rose.source"/>
+<plugin id="org.eclipse.emf.importer.source"/>
+<plugin id="org.eclipse.emf.mapping"/>
+<plugin id="org.eclipse.emf.mapping.ecore"/>
+<plugin id="org.eclipse.emf.mapping.ecore.editor"/>
+<plugin id="org.eclipse.emf.mapping.ecore2ecore"/>
+<plugin id="org.eclipse.emf.mapping.ecore2ecore.editor"/>
+<plugin id="org.eclipse.emf.mapping.ecore2ecore.editor.source"/>
+<plugin id="org.eclipse.emf.mapping.ecore2ecore.source"/>
+<plugin id="org.eclipse.emf.mapping.ecore2xml"/>
+<plugin id="org.eclipse.emf.mapping.ecore2xml.source"/>
+<plugin id="org.eclipse.emf.mapping.ecore2xml.ui"/>
+<plugin id="org.eclipse.emf.mapping.ecore2xml.ui.source"/>
+<plugin id="org.eclipse.emf.mapping.source"/>
+<plugin id="org.eclipse.emf.mapping.ui"/>
+<plugin id="org.eclipse.emf.mapping.ui.source"/>
+<plugin id="org.eclipse.emf.transaction"/>
+<plugin id="org.eclipse.emf.transaction.doc"/>
+<plugin id="org.eclipse.emf.transaction.examples"/>
+<plugin id="org.eclipse.emf.transaction.source"/>
+<plugin id="org.eclipse.emf.transaction.ui"/>
+<plugin id="org.eclipse.emf.transaction.ui.source"/>
+<plugin id="org.eclipse.emf.validation"/>
+<plugin id="org.eclipse.emf.validation.doc"/>
+<plugin id="org.eclipse.emf.validation.examples"/>
+<plugin id="org.eclipse.emf.validation.ocl"/>
+<plugin id="org.eclipse.emf.validation.ocl.source"/>
+<plugin id="org.eclipse.emf.validation.source"/>
+<plugin id="org.eclipse.emf.validation.ui"/>
+<plugin id="org.eclipse.emf.validation.ui.ide"/>
+<plugin id="org.eclipse.emf.validation.ui.ide.source"/>
+<plugin id="org.eclipse.emf.validation.ui.source"/>
+<plugin id="org.eclipse.emf.workspace"/>
+<plugin id="org.eclipse.emf.workspace.doc"/>
+<plugin id="org.eclipse.emf.workspace.source"/>
+<plugin id="org.eclipse.emf.workspace.ui"/>
+<plugin id="org.eclipse.emf.workspace.ui.source"/>
+<plugin id="org.eclipse.equinox.app" version="1.3.100.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.app" version="1.3.200.v20130910-1609"/>
+<plugin id="org.eclipse.equinox.app.source" version="1.3.200.v20130910-1609"/>
+<plugin id="org.eclipse.equinox.app.source" version="1.3.100.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.bidi"/>
+<plugin id="org.eclipse.equinox.bidi.source"/>
+<plugin id="org.eclipse.equinox.cm" version="1.1.0.v20131021-1936"/>
+<plugin id="org.eclipse.equinox.cm" version="1.0.400.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.cm.source" version="1.1.0.v20131021-1936"/>
+<plugin id="org.eclipse.equinox.cm.source" version="1.0.400.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.common" version="3.6.200.v20130402-1505"/>
+<plugin id="org.eclipse.equinox.common" version="3.6.100.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.common.source" version="3.6.100.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.common.source" version="3.6.200.v20130402-1505"/>
+<plugin id="org.eclipse.equinox.concurrent"/>
+<plugin id="org.eclipse.equinox.concurrent.source"/>
+<plugin id="org.eclipse.equinox.console" version="1.0.0.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.console" version="1.1.0.v20140131-1639"/>
+<plugin id="org.eclipse.equinox.console.jaas.fragment"/>
+<plugin id="org.eclipse.equinox.console.jaas.fragment.source"/>
+<plugin id="org.eclipse.equinox.console.source" version="1.1.0.v20140131-1639"/>
+<plugin id="org.eclipse.equinox.console.source" version="1.0.0.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.console.ssh"/>
+<plugin id="org.eclipse.equinox.console.ssh.source"/>
+<plugin id="org.eclipse.equinox.coordinator"/>
+<plugin id="org.eclipse.equinox.coordinator.source"/>
+<plugin id="org.eclipse.equinox.device"/>
+<plugin id="org.eclipse.equinox.device.source"/>
+<plugin id="org.eclipse.equinox.ds" version="1.4.200.v20131126-2331"/>
+<plugin id="org.eclipse.equinox.ds" version="1.4.1.v20120926-201320"/>
+<plugin id="org.eclipse.equinox.ds.source" version="1.4.1.v20120926-201320"/>
+<plugin id="org.eclipse.equinox.ds.source" version="1.4.200.v20131126-2331"/>
+<plugin id="org.eclipse.equinox.event" version="1.2.200.v20120522-2049"/>
+<plugin id="org.eclipse.equinox.event" version="1.3.100.v20140115-1647"/>
+<plugin id="org.eclipse.equinox.event.source" version="1.3.100.v20140115-1647"/>
+<plugin id="org.eclipse.equinox.event.source" version="1.2.200.v20120522-2049"/>
+<plugin id="org.eclipse.equinox.frameworkadmin"/>
+<plugin id="org.eclipse.equinox.frameworkadmin.equinox"/>
+<plugin id="org.eclipse.equinox.frameworkadmin.equinox.source"/>
+<plugin id="org.eclipse.equinox.frameworkadmin.source"/>
+<plugin id="org.eclipse.equinox.http.jetty" version="3.0.200.v20131021-1843"/>
+<plugin id="org.eclipse.equinox.http.jetty" version="3.0.1.v20121109-203239"/>
+<plugin id="org.eclipse.equinox.http.jetty.source" version="3.0.200.v20131021-1843"/>
+<plugin id="org.eclipse.equinox.http.jetty.source" version="3.0.1.v20121109-203239"/>
+<plugin id="org.eclipse.equinox.http.registry" version="1.1.300.v20130402-1529"/>
+<plugin id="org.eclipse.equinox.http.registry" version="1.1.200.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.http.registry.source" version="1.1.200.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.http.registry.source" version="1.1.300.v20130402-1529"/>
+<plugin id="org.eclipse.equinox.http.servlet" version="1.1.300.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.http.servlet" version="1.1.500.v20140318-1755"/>
+<plugin id="org.eclipse.equinox.http.servlet" version="1.1.300.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.http.servlet.source" version="1.1.500.v20140318-1755"/>
+<plugin id="org.eclipse.equinox.http.servlet.source" version="1.1.300.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.http.servlet.source" version="1.1.300.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.http.servletbridge" version="1.0.300.v20130327-1442"/>
+<plugin id="org.eclipse.equinox.http.servletbridge" version="1.0.300.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.http.servletbridge.source" version="1.0.300.v20130327-1442"/>
+<plugin id="org.eclipse.equinox.http.servletbridge.source" version="1.0.300.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.io"/>
+<plugin id="org.eclipse.equinox.io.source"/>
+<plugin id="org.eclipse.equinox.ip"/>
+<plugin id="org.eclipse.equinox.ip.source"/>
+<plugin id="org.eclipse.equinox.jsp.jasper"/>
+<plugin id="org.eclipse.equinox.jsp.jasper.registry"/>
+<plugin id="org.eclipse.equinox.jsp.jasper.registry.source"/>
+<plugin id="org.eclipse.equinox.jsp.jasper.source"/>
+<plugin id="org.eclipse.equinox.launcher"/>
+<plugin id="org.eclipse.equinox.launcher.cocoa.macosx"/>
+<plugin id="org.eclipse.equinox.launcher.cocoa.macosx.x86_64"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.aix.ppc"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.aix.ppc64"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.hpux.ia64_32"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.linux.ppc"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.linux.ppc64"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.linux.s390"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.linux.s390x"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.linux.x86"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.linux.x86_64"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.solaris.sparc"/>
+<plugin id="org.eclipse.equinox.launcher.gtk.solaris.x86"/>
+<plugin id="org.eclipse.equinox.launcher.source"/>
+<plugin id="org.eclipse.equinox.launcher.win32.win32.x86"/>
+<plugin id="org.eclipse.equinox.launcher.win32.win32.x86_64"/>
+<plugin id="org.eclipse.equinox.log"/>
+<plugin id="org.eclipse.equinox.log.source"/>
+<plugin id="org.eclipse.equinox.metatype"/>
+<plugin id="org.eclipse.equinox.metatype.source"/>
+<plugin id="org.eclipse.equinox.p2.artifact.repository"/>
+<plugin id="org.eclipse.equinox.p2.artifact.repository.source"/>
+<plugin id="org.eclipse.equinox.p2.console"/>
+<plugin id="org.eclipse.equinox.p2.console.source"/>
+<plugin id="org.eclipse.equinox.p2.core"/>
+<plugin id="org.eclipse.equinox.p2.core.source"/>
+<plugin id="org.eclipse.equinox.p2.director"/>
+<plugin id="org.eclipse.equinox.p2.director.app"/>
+<plugin id="org.eclipse.equinox.p2.director.app.source"/>
+<plugin id="org.eclipse.equinox.p2.director.source"/>
+<plugin id="org.eclipse.equinox.p2.directorywatcher"/>
+<plugin id="org.eclipse.equinox.p2.directorywatcher.source"/>
+<plugin id="org.eclipse.equinox.p2.discovery"/>
+<plugin id="org.eclipse.equinox.p2.discovery.compatibility"/>
+<plugin id="org.eclipse.equinox.p2.engine"/>
+<plugin id="org.eclipse.equinox.p2.engine.source"/>
+<plugin id="org.eclipse.equinox.p2.extensionlocation"/>
+<plugin id="org.eclipse.equinox.p2.extensionlocation.source"/>
+<plugin id="org.eclipse.equinox.p2.garbagecollector"/>
+<plugin id="org.eclipse.equinox.p2.garbagecollector.source"/>
+<plugin id="org.eclipse.equinox.p2.installer"/>
+<plugin id="org.eclipse.equinox.p2.installer.source"/>
+<plugin id="org.eclipse.equinox.p2.jarprocessor"/>
+<plugin id="org.eclipse.equinox.p2.jarprocessor.source"/>
+<plugin id="org.eclipse.equinox.p2.metadata"/>
+<plugin id="org.eclipse.equinox.p2.metadata.repository"/>
+<plugin id="org.eclipse.equinox.p2.metadata.repository.source"/>
+<plugin id="org.eclipse.equinox.p2.metadata.source"/>
+<plugin id="org.eclipse.equinox.p2.operations"/>
+<plugin id="org.eclipse.equinox.p2.operations.source"/>
+<plugin id="org.eclipse.equinox.p2.publisher"/>
+<plugin id="org.eclipse.equinox.p2.publisher.eclipse"/>
+<plugin id="org.eclipse.equinox.p2.publisher.eclipse.source"/>
+<plugin id="org.eclipse.equinox.p2.publisher.source"/>
+<plugin id="org.eclipse.equinox.p2.ql"/>
+<plugin id="org.eclipse.equinox.p2.ql.source"/>
+<plugin id="org.eclipse.equinox.p2.reconciler.dropins"/>
+<plugin id="org.eclipse.equinox.p2.reconciler.dropins.source"/>
+<plugin id="org.eclipse.equinox.p2.repository"/>
+<plugin id="org.eclipse.equinox.p2.repository.source"/>
+<plugin id="org.eclipse.equinox.p2.repository.tools"/>
+<plugin id="org.eclipse.equinox.p2.repository.tools.source"/>
+<plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
+<plugin id="org.eclipse.equinox.p2.touchpoint.eclipse.source"/>
+<plugin id="org.eclipse.equinox.p2.touchpoint.natives"/>
+<plugin id="org.eclipse.equinox.p2.touchpoint.natives.source"/>
+<plugin id="org.eclipse.equinox.p2.transport.ecf"/>
+<plugin id="org.eclipse.equinox.p2.transport.ecf.source"/>
+<plugin id="org.eclipse.equinox.p2.ui"/>
+<plugin id="org.eclipse.equinox.p2.ui.admin"/>
+<plugin id="org.eclipse.equinox.p2.ui.admin.rcp"/>
+<plugin id="org.eclipse.equinox.p2.ui.admin.rcp.source"/>
+<plugin id="org.eclipse.equinox.p2.ui.admin.source"/>
+<plugin id="org.eclipse.equinox.p2.ui.discovery"/>
+<plugin id="org.eclipse.equinox.p2.ui.importexport"/>
+<plugin id="org.eclipse.equinox.p2.ui.importexport.source"/>
+<plugin id="org.eclipse.equinox.p2.ui.sdk"/>
+<plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler"/>
+<plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler.source"/>
+<plugin id="org.eclipse.equinox.p2.ui.sdk.source"/>
+<plugin id="org.eclipse.equinox.p2.ui.source"/>
+<plugin id="org.eclipse.equinox.p2.updatechecker"/>
+<plugin id="org.eclipse.equinox.p2.updatechecker.source"/>
+<plugin id="org.eclipse.equinox.p2.updatesite"/>
+<plugin id="org.eclipse.equinox.p2.updatesite.source"/>
+<plugin id="org.eclipse.equinox.preferences" version="3.5.1.v20121031-182809"/>
+<plugin id="org.eclipse.equinox.preferences" version="3.5.200.v20140224-1527"/>
+<plugin id="org.eclipse.equinox.preferences.source" version="3.5.200.v20140224-1527"/>
+<plugin id="org.eclipse.equinox.preferences.source" version="3.5.1.v20121031-182809"/>
+<plugin id="org.eclipse.equinox.region"/>
+<plugin id="org.eclipse.equinox.region.source"/>
+<plugin id="org.eclipse.equinox.registry" version="3.5.400.v20140428-1507"/>
+<plugin id="org.eclipse.equinox.registry" version="3.5.200.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.registry.source" version="3.5.400.v20140428-1507"/>
+<plugin id="org.eclipse.equinox.registry.source" version="3.5.200.v20120522-1841"/>
+<plugin id="org.eclipse.equinox.security"/>
+<plugin id="org.eclipse.equinox.security.macosx"/>
+<plugin id="org.eclipse.equinox.security.macosx.source"/>
+<plugin id="org.eclipse.equinox.security.source"/>
+<plugin id="org.eclipse.equinox.security.ui"/>
+<plugin id="org.eclipse.equinox.security.ui.source"/>
+<plugin id="org.eclipse.equinox.security.win32.x86"/>
+<plugin id="org.eclipse.equinox.security.win32.x86.source"/>
+<plugin id="org.eclipse.equinox.security.win32.x86_64"/>
+<plugin id="org.eclipse.equinox.security.win32.x86_64.source"/>
+<plugin id="org.eclipse.equinox.servletbridge" version="1.3.0.v20140430-1556"/>
+<plugin id="org.eclipse.equinox.servletbridge" version="1.2.200.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.servletbridge.extensionbundle"/>
+<plugin id="org.eclipse.equinox.servletbridge.source" version="1.3.0.v20140430-1556"/>
+<plugin id="org.eclipse.equinox.servletbridge.source" version="1.2.200.v20120912-130548"/>
+<plugin id="org.eclipse.equinox.simpleconfigurator"/>
+<plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
+<plugin id="org.eclipse.equinox.simpleconfigurator.manipulator.source"/>
+<plugin id="org.eclipse.equinox.simpleconfigurator.source"/>
+<plugin id="org.eclipse.equinox.supplement"/>
+<plugin id="org.eclipse.equinox.supplement.source"/>
+<plugin id="org.eclipse.equinox.transforms.hook"/>
+<plugin id="org.eclipse.equinox.transforms.hook.source"/>
+<plugin id="org.eclipse.equinox.transforms.xslt"/>
+<plugin id="org.eclipse.equinox.transforms.xslt.source"/>
+<plugin id="org.eclipse.equinox.useradmin"/>
+<plugin id="org.eclipse.equinox.useradmin.source"/>
+<plugin id="org.eclipse.equinox.util" version="1.0.500.v20130404-1337"/>
+<plugin id="org.eclipse.equinox.util" version="1.0.400.v20120917-192807"/>
+<plugin id="org.eclipse.equinox.util.source" version="1.0.400.v20120917-192807"/>
+<plugin id="org.eclipse.equinox.util.source" version="1.0.500.v20130404-1337"/>
+<plugin id="org.eclipse.equinox.weaving.aspectj"/>
+<plugin id="org.eclipse.equinox.weaving.aspectj.source"/>
+<plugin id="org.eclipse.equinox.weaving.caching"/>
+<plugin id="org.eclipse.equinox.weaving.caching.j9"/>
+<plugin id="org.eclipse.equinox.weaving.caching.j9.source"/>
+<plugin id="org.eclipse.equinox.weaving.caching.source"/>
+<plugin id="org.eclipse.equinox.weaving.hook"/>
+<plugin id="org.eclipse.equinox.weaving.hook.source"/>
+<plugin id="org.eclipse.equinox.wireadmin"/>
+<plugin id="org.eclipse.equinox.wireadmin.source"/>
+<plugin id="org.eclipse.gef"/>
+<plugin id="org.eclipse.gef.doc.isv"/>
+<plugin id="org.eclipse.gef.examples.ui.pde"/>
+<plugin id="org.eclipse.gef.source"/>
+<plugin id="org.eclipse.graphiti"/>
+<plugin id="org.eclipse.graphiti.export.batik"/>
+<plugin id="org.eclipse.graphiti.mm"/>
+<plugin id="org.eclipse.graphiti.mm.source"/>
+<plugin id="org.eclipse.graphiti.pattern"/>
+<plugin id="org.eclipse.graphiti.pattern.source"/>
+<plugin id="org.eclipse.graphiti.source"/>
+<plugin id="org.eclipse.graphiti.ui"/>
+<plugin id="org.eclipse.graphiti.ui.source"/>
+<plugin id="org.eclipse.help" version="3.6.0.v20130326-1254"/>
+<plugin id="org.eclipse.help" version="3.6.0.v20120912-134126"/>
+<plugin id="org.eclipse.help.base"/>
+<plugin id="org.eclipse.help.base.source"/>
+<plugin id="org.eclipse.help.source" version="3.6.0.v20130326-1254"/>
+<plugin id="org.eclipse.help.source" version="3.6.0.v20120912-134126"/>
+<plugin id="org.eclipse.help.ui"/>
+<plugin id="org.eclipse.help.ui.source"/>
+<plugin id="org.eclipse.help.webapp"/>
+<plugin id="org.eclipse.help.webapp.source"/>
+<plugin id="org.eclipse.jdt"/>
+<plugin id="org.eclipse.jdt.annotation" version="1.1.0.v20140129-1625"/>
+<plugin id="org.eclipse.jdt.annotation" version="2.0.0.v20140415-1436"/>
+<plugin id="org.eclipse.jdt.annotation.source" version="2.0.0.v20140415-1436"/>
+<plugin id="org.eclipse.jdt.annotation.source" version="1.1.0.v20140129-1625"/>
+<plugin id="org.eclipse.jdt.apt.core"/>
+<plugin id="org.eclipse.jdt.apt.core.source"/>
+<plugin id="org.eclipse.jdt.apt.pluggable.core"/>
+<plugin id="org.eclipse.jdt.apt.pluggable.core.source"/>
+<plugin id="org.eclipse.jdt.apt.ui"/>
+<plugin id="org.eclipse.jdt.apt.ui.source"/>
+<plugin id="org.eclipse.jdt.compiler.apt"/>
+<plugin id="org.eclipse.jdt.compiler.apt.source"/>
+<plugin id="org.eclipse.jdt.compiler.tool"/>
+<plugin id="org.eclipse.jdt.compiler.tool.source"/>
+<plugin id="org.eclipse.jdt.core"/>
+<plugin id="org.eclipse.jdt.core.manipulation"/>
+<plugin id="org.eclipse.jdt.core.manipulation.source"/>
+<plugin id="org.eclipse.jdt.core.source"/>
+<plugin id="org.eclipse.jdt.debug"/>
+<plugin id="org.eclipse.jdt.debug.source"/>
+<plugin id="org.eclipse.jdt.debug.ui"/>
+<plugin id="org.eclipse.jdt.debug.ui.source"/>
+<plugin id="org.eclipse.jdt.doc.user"/>
+<plugin id="org.eclipse.jdt.junit"/>
+<plugin id="org.eclipse.jdt.junit.core"/>
+<plugin id="org.eclipse.jdt.junit.core.source"/>
+<plugin id="org.eclipse.jdt.junit.runtime"/>
+<plugin id="org.eclipse.jdt.junit.runtime.source"/>
+<plugin id="org.eclipse.jdt.junit.source"/>
+<plugin id="org.eclipse.jdt.junit4.runtime"/>
+<plugin id="org.eclipse.jdt.junit4.runtime.source"/>
+<plugin id="org.eclipse.jdt.launching"/>
+<plugin id="org.eclipse.jdt.launching.macosx"/>
+<plugin id="org.eclipse.jdt.launching.macosx.source"/>
+<plugin id="org.eclipse.jdt.launching.source"/>
+<plugin id="org.eclipse.jdt.launching.ui.macosx"/>
+<plugin id="org.eclipse.jdt.launching.ui.macosx.source"/>
+<plugin id="org.eclipse.jdt.ui"/>
+<plugin id="org.eclipse.jdt.ui.source"/>
+<plugin id="org.eclipse.jetty.annotations"/>
+<plugin id="org.eclipse.jetty.annotations.source"/>
+<plugin id="org.eclipse.jetty.client"/>
+<plugin id="org.eclipse.jetty.client.source"/>
+<plugin id="org.eclipse.jetty.continuation" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.continuation" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.continuation" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.continuation.source" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.continuation.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.continuation.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.deploy"/>
+<plugin id="org.eclipse.jetty.deploy.source"/>
+<plugin id="org.eclipse.jetty.http" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.http" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.http" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.http.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.http.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.http.source" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.io" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.io" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.io" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.io.source" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.io.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.io.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.jaspi"/>
+<plugin id="org.eclipse.jetty.jaspi.source"/>
+<plugin id="org.eclipse.jetty.jmx"/>
+<plugin id="org.eclipse.jetty.jmx.source"/>
+<plugin id="org.eclipse.jetty.jndi"/>
+<plugin id="org.eclipse.jetty.jndi.source"/>
+<plugin id="org.eclipse.jetty.monitor"/>
+<plugin id="org.eclipse.jetty.monitor.source"/>
+<plugin id="org.eclipse.jetty.nested"/>
+<plugin id="org.eclipse.jetty.nested.source"/>
+<plugin id="org.eclipse.jetty.nosql"/>
+<plugin id="org.eclipse.jetty.nosql.source"/>
+<plugin id="org.eclipse.jetty.osgi.boot"/>
+<plugin id="org.eclipse.jetty.osgi.boot.jsp"/>
+<plugin id="org.eclipse.jetty.osgi.boot.source"/>
+<plugin id="org.eclipse.jetty.osgi.boot.warurl"/>
+<plugin id="org.eclipse.jetty.osgi.httpservice"/>
+<plugin id="org.eclipse.jetty.plus"/>
+<plugin id="org.eclipse.jetty.plus.source"/>
+<plugin id="org.eclipse.jetty.rewrite"/>
+<plugin id="org.eclipse.jetty.rewrite.source"/>
+<plugin id="org.eclipse.jetty.security" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.security" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.security" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.security.source" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.security.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.security.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.server" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.server" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.server" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.server.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.server.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.server.source" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.servlet" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.servlet" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.servlet" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.servlet.source" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.servlet.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.servlet.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.servlets"/>
+<plugin id="org.eclipse.jetty.servlets.source"/>
+<plugin id="org.eclipse.jetty.util" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.util" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.util" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.util.source" version="8.1.16.v20140903"/>
+<plugin id="org.eclipse.jetty.util.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.util.source" version="8.1.3.v20120522"/>
+<plugin id="org.eclipse.jetty.webapp"/>
+<plugin id="org.eclipse.jetty.webapp.source"/>
+<plugin id="org.eclipse.jetty.websocket"/>
+<plugin id="org.eclipse.jetty.websocket.source"/>
+<plugin id="org.eclipse.jetty.xml"/>
+<plugin id="org.eclipse.jetty.xml.source"/>
+<plugin id="org.eclipse.jsch.core"/>
+<plugin id="org.eclipse.jsch.core.source"/>
+<plugin id="org.eclipse.jsch.ui"/>
+<plugin id="org.eclipse.jsch.ui.source"/>
+<plugin id="org.eclipse.ltk.core.refactoring"/>
+<plugin id="org.eclipse.ltk.core.refactoring.source"/>
+<plugin id="org.eclipse.ltk.ui.refactoring"/>
+<plugin id="org.eclipse.ltk.ui.refactoring.source"/>
+<plugin id="org.eclipse.net4j"/>
+<plugin id="org.eclipse.net4j.db"/>
+<plugin id="org.eclipse.net4j.db.doc"/>
+<plugin id="org.eclipse.net4j.db.doc.source"/>
+<plugin id="org.eclipse.net4j.db.h2"/>
+<plugin id="org.eclipse.net4j.db.h2.source"/>
+<plugin id="org.eclipse.net4j.db.jdbc"/>
+<plugin id="org.eclipse.net4j.db.jdbc.source"/>
+<plugin id="org.eclipse.net4j.db.source"/>
+<plugin id="org.eclipse.net4j.debug"/>
+<plugin id="org.eclipse.net4j.debug.source"/>
+<plugin id="org.eclipse.net4j.defs"/>
+<plugin id="org.eclipse.net4j.defs.source"/>
+<plugin id="org.eclipse.net4j.doc"/>
+<plugin id="org.eclipse.net4j.doc.source"/>
+<plugin id="org.eclipse.net4j.examples.installer"/>
+<plugin id="org.eclipse.net4j.examples.installer.source"/>
+<plugin id="org.eclipse.net4j.http"/>
+<plugin id="org.eclipse.net4j.http.common"/>
+<plugin id="org.eclipse.net4j.http.common.source"/>
+<plugin id="org.eclipse.net4j.http.server"/>
+<plugin id="org.eclipse.net4j.http.server.source"/>
+<plugin id="org.eclipse.net4j.http.source"/>
+<plugin id="org.eclipse.net4j.jvm"/>
+<plugin id="org.eclipse.net4j.jvm.source"/>
+<plugin id="org.eclipse.net4j.sdk"/>
+<plugin id="org.eclipse.net4j.sdk.source"/>
+<plugin id="org.eclipse.net4j.source"/>
+<plugin id="org.eclipse.net4j.tcp"/>
+<plugin id="org.eclipse.net4j.tcp.source"/>
+<plugin id="org.eclipse.net4j.ui"/>
+<plugin id="org.eclipse.net4j.ui.defs"/>
+<plugin id="org.eclipse.net4j.ui.defs.source"/>
+<plugin id="org.eclipse.net4j.ui.shared"/>
+<plugin id="org.eclipse.net4j.ui.shared.source"/>
+<plugin id="org.eclipse.net4j.ui.source"/>
+<plugin id="org.eclipse.net4j.util"/>
+<plugin id="org.eclipse.net4j.util.defs"/>
+<plugin id="org.eclipse.net4j.util.defs.source"/>
+<plugin id="org.eclipse.net4j.util.doc"/>
+<plugin id="org.eclipse.net4j.util.doc.source"/>
+<plugin id="org.eclipse.net4j.util.source"/>
+<plugin id="org.eclipse.net4j.util.ui"/>
+<plugin id="org.eclipse.net4j.util.ui.source"/>
+<plugin id="org.eclipse.orbit.mongodb"/>
+<plugin id="org.eclipse.orbit.mongodb.source"/>
+<plugin id="org.eclipse.osgi" version="3.8.0.v20120529-1548"/>
+<plugin id="org.eclipse.osgi" version="3.8.2.v20130124-134944"/>
+<plugin id="org.eclipse.osgi" version="3.10.2.v20150203-1939"/>
+<plugin id="org.eclipse.osgi.services" version="3.3.100.v20120522-1822"/>
+<plugin id="org.eclipse.osgi.services" version="3.4.0.v20140312-2051"/>
+<plugin id="org.eclipse.osgi.services" version="3.3.100.v20120522-1822"/>
+<plugin id="org.eclipse.osgi.services.source" version="3.3.100.v20120522-1822"/>
+<plugin id="org.eclipse.osgi.services.source" version="3.3.100.v20120522-1822"/>
+<plugin id="org.eclipse.osgi.services.source" version="3.4.0.v20140312-2051"/>
+<plugin id="org.eclipse.osgi.source" version="3.8.2.v20130124-134944"/>
+<plugin id="org.eclipse.osgi.source" version="3.10.2.v20150203-1939"/>
+<plugin id="org.eclipse.osgi.source" version="3.8.0.v20120529-1548"/>
+<plugin id="org.eclipse.osgi.util" version="3.2.300.v20120913-144807"/>
+<plugin id="org.eclipse.osgi.util" version="3.2.300.v20120522-1822"/>
+<plugin id="org.eclipse.osgi.util.source" version="3.2.300.v20120913-144807"/>
+<plugin id="org.eclipse.osgi.util.source" version="3.2.300.v20120522-1822"/>
+<plugin id="org.eclipse.platform"/>
+<plugin id="org.eclipse.platform.doc.user"/>
+<plugin id="org.eclipse.platform.source"/>
+<plugin id="org.eclipse.rap.addons.filedialog"/>
+<plugin id="org.eclipse.rap.addons.filedialog.source"/>
+<plugin id="org.eclipse.rap.addons.fileupload"/>
+<plugin id="org.eclipse.rap.addons.fileupload.source"/>
+<plugin id="org.eclipse.rap.jface"/>
+<plugin id="org.eclipse.rap.jface.databinding"/>
+<plugin id="org.eclipse.rap.jface.databinding.source"/>
+<plugin id="org.eclipse.rap.jface.source"/>
+<plugin id="org.eclipse.rap.junit"/>
+<plugin id="org.eclipse.rap.junit.runtime"/>
+<plugin id="org.eclipse.rap.junit.runtime.source"/>
+<plugin id="org.eclipse.rap.junit.source"/>
+<plugin id="org.eclipse.rap.rwt"/>
+<plugin id="org.eclipse.rap.rwt.osgi"/>
+<plugin id="org.eclipse.rap.rwt.osgi.source"/>
+<plugin id="org.eclipse.rap.rwt.source"/>
+<plugin id="org.eclipse.rap.rwt.testfixture"/>
+<plugin id="org.eclipse.rap.rwt.testfixture.source"/>
+<plugin id="org.eclipse.rap.ui"/>
+<plugin id="org.eclipse.rap.ui.cheatsheets"/>
+<plugin id="org.eclipse.rap.ui.cheatsheets.source"/>
+<plugin id="org.eclipse.rap.ui.forms"/>
+<plugin id="org.eclipse.rap.ui.forms.source"/>
+<plugin id="org.eclipse.rap.ui.source"/>
+<plugin id="org.eclipse.rap.ui.views"/>
+<plugin id="org.eclipse.rap.ui.views.source"/>
+<plugin id="org.eclipse.rap.ui.workbench"/>
+<plugin id="org.eclipse.rap.ui.workbench.source"/>
+<plugin id="org.eclipse.rcp"/>
+<plugin id="org.eclipse.rcp.source"/>
+<plugin id="org.eclipse.search"/>
+<plugin id="org.eclipse.search.source"/>
+<plugin id="org.eclipse.swt.cocoa.macosx"/>
+<plugin id="org.eclipse.swt.cocoa.macosx.source"/>
+<plugin id="org.eclipse.swt.cocoa.macosx.x86_64"/>
+<plugin id="org.eclipse.swt.cocoa.macosx.x86_64.source"/>
+<plugin id="org.eclipse.swt.gtk.aix.ppc"/>
+<plugin id="org.eclipse.swt.gtk.aix.ppc.source"/>
+<plugin id="org.eclipse.swt.gtk.aix.ppc64"/>
+<plugin id="org.eclipse.swt.gtk.aix.ppc64.source"/>
+<plugin id="org.eclipse.swt.gtk.hpux.ia64_32"/>
+<plugin id="org.eclipse.swt.gtk.hpux.ia64_32.source"/>
+<plugin id="org.eclipse.swt.gtk.linux.ppc"/>
+<plugin id="org.eclipse.swt.gtk.linux.ppc.source"/>
+<plugin id="org.eclipse.swt.gtk.linux.ppc64"/>
+<plugin id="org.eclipse.swt.gtk.linux.ppc64.source"/>
+<plugin id="org.eclipse.swt.gtk.linux.s390"/>
+<plugin id="org.eclipse.swt.gtk.linux.s390.source"/>
+<plugin id="org.eclipse.swt.gtk.linux.s390x"/>
+<plugin id="org.eclipse.swt.gtk.linux.s390x.source"/>
+<plugin id="org.eclipse.swt.gtk.linux.x86"/>
+<plugin id="org.eclipse.swt.gtk.linux.x86.source"/>
+<plugin id="org.eclipse.swt.gtk.linux.x86_64"/>
+<plugin id="org.eclipse.swt.gtk.linux.x86_64.source"/>
+<plugin id="org.eclipse.swt.gtk.solaris.sparc"/>
+<plugin id="org.eclipse.swt.gtk.solaris.sparc.source"/>
+<plugin id="org.eclipse.swt.gtk.solaris.x86"/>
+<plugin id="org.eclipse.swt.gtk.solaris.x86.source"/>
+<plugin id="org.eclipse.swt.win32.win32.x86"/>
+<plugin id="org.eclipse.swt.win32.win32.x86.source"/>
+<plugin id="org.eclipse.swt.win32.win32.x86_64"/>
+<plugin id="org.eclipse.swt.win32.win32.x86_64.source"/>
+<plugin id="org.eclipse.swtbot.ant.junit"/>
+<plugin id="org.eclipse.swtbot.e4.finder"/>
+<plugin id="org.eclipse.swtbot.e4.finder.source"/>
+<plugin id="org.eclipse.swtbot.eclipse.core"/>
+<plugin id="org.eclipse.swtbot.eclipse.core.source"/>
+<plugin id="org.eclipse.swtbot.eclipse.finder"/>
+<plugin id="org.eclipse.swtbot.eclipse.finder.source"/>
+<plugin id="org.eclipse.swtbot.eclipse.gef.finder"/>
+<plugin id="org.eclipse.swtbot.eclipse.gef.finder.source"/>
+<plugin id="org.eclipse.swtbot.eclipse.junit.headless"/>
+<plugin id="org.eclipse.swtbot.forms.finder"/>
+<plugin id="org.eclipse.swtbot.forms.finder.source"/>
+<plugin id="org.eclipse.swtbot.go"/>
+<plugin id="org.eclipse.swtbot.go.source"/>
+<plugin id="org.eclipse.swtbot.junit4_x"/>
+<plugin id="org.eclipse.swtbot.junit4_x.source"/>
+<plugin id="org.eclipse.swtbot.swt.finder"/>
+<plugin id="org.eclipse.swtbot.swt.finder.source"/>
+<plugin id="org.eclipse.team.core"/>
+<plugin id="org.eclipse.team.core.source"/>
+<plugin id="org.eclipse.team.ui"/>
+<plugin id="org.eclipse.team.ui.source"/>
+<plugin id="org.eclipse.text"/>
+<plugin id="org.eclipse.text.source"/>
+<plugin id="org.eclipse.ui"/>
+<plugin id="org.eclipse.ui.browser"/>
+<plugin id="org.eclipse.ui.browser.source"/>
+<plugin id="org.eclipse.ui.cheatsheets"/>
+<plugin id="org.eclipse.ui.cheatsheets.source"/>
+<plugin id="org.eclipse.ui.console"/>
+<plugin id="org.eclipse.ui.console.source"/>
+<plugin id="org.eclipse.ui.editors"/>
+<plugin id="org.eclipse.ui.editors.source"/>
+<plugin id="org.eclipse.ui.externaltools"/>
+<plugin id="org.eclipse.ui.externaltools.source"/>
+<plugin id="org.eclipse.ui.forms"/>
+<plugin id="org.eclipse.ui.forms.source"/>
+<plugin id="org.eclipse.ui.ide"/>
+<plugin id="org.eclipse.ui.ide.application"/>
+<plugin id="org.eclipse.ui.ide.application.source"/>
+<plugin id="org.eclipse.ui.ide.source"/>
+<plugin id="org.eclipse.ui.intro"/>
+<plugin id="org.eclipse.ui.intro.source"/>
+<plugin id="org.eclipse.ui.intro.universal"/>
+<plugin id="org.eclipse.ui.intro.universal.source"/>
+<plugin id="org.eclipse.ui.navigator"/>
+<plugin id="org.eclipse.ui.navigator.resources"/>
+<plugin id="org.eclipse.ui.navigator.resources.source"/>
+<plugin id="org.eclipse.ui.navigator.source"/>
+<plugin id="org.eclipse.ui.net"/>
+<plugin id="org.eclipse.ui.net.source"/>
+<plugin id="org.eclipse.ui.source"/>
+<plugin id="org.eclipse.ui.views"/>
+<plugin id="org.eclipse.ui.views.properties.tabbed"/>
+<plugin id="org.eclipse.ui.views.properties.tabbed.source"/>
+<plugin id="org.eclipse.ui.views.source"/>
+<plugin id="org.eclipse.ui.win32"/>
+<plugin id="org.eclipse.ui.win32.source"/>
+<plugin id="org.eclipse.ui.workbench"/>
+<plugin id="org.eclipse.ui.workbench.source"/>
+<plugin id="org.eclipse.ui.workbench.texteditor"/>
+<plugin id="org.eclipse.ui.workbench.texteditor.source"/>
+<plugin id="org.eclipse.update.configurator"/>
+<plugin id="org.eclipse.update.configurator.source"/>
+<plugin id="org.eclipselabs.emf.query.simple"/>
+<plugin id="org.eclipselabs.emf.query.simple.source"/>
+<plugin id="org.eclipselabs.mongo"/>
+<plugin id="org.eclipselabs.mongo.emf"/>
+<plugin id="org.eclipselabs.mongo.emf.builders"/>
+<plugin id="org.eclipselabs.mongo.emf.builders.source"/>
+<plugin id="org.eclipselabs.mongo.emf.converter"/>
+<plugin id="org.eclipselabs.mongo.emf.converter.source"/>
+<plugin id="org.eclipselabs.mongo.emf.ext"/>
+<plugin id="org.eclipselabs.mongo.emf.ext.source"/>
+<plugin id="org.eclipselabs.mongo.emf.query.simple"/>
+<plugin id="org.eclipselabs.mongo.emf.query.simple.source"/>
+<plugin id="org.eclipselabs.mongo.emf.source"/>
+<plugin id="org.eclipselabs.mongo.emf.streams"/>
+<plugin id="org.eclipselabs.mongo.emf.streams.source"/>
+<plugin id="org.eclipselabs.mongo.source"/>
+<plugin id="org.h2"/>
+<plugin id="org.h2.source"/>
+<plugin id="org.hamcrest.core" version="1.3.0.v201303031735"/>
+<plugin id="org.hamcrest.core" version="1.3.0.v201303031735"/>
+<plugin id="org.hamcrest.core.source" version="1.3.0.v201303031735"/>
+<plugin id="org.hamcrest.core.source" version="1.3.0.v201303031735"/>
+<plugin id="org.hamcrest.library"/>
+<plugin id="org.hamcrest.library.source"/>
+<plugin id="org.junit"/>
+<plugin id="org.junit.source"/>
+<plugin id="org.sat4j.core"/>
+<plugin id="org.sat4j.pb"/>
+<plugin id="org.slf4j.api"/>
+<plugin id="org.slf4j.api.source"/>
+<plugin id="org.slf4j.jcl"/>
+<plugin id="org.slf4j.jcl.source"/>
+<plugin id="org.slf4j.jul"/>
+<plugin id="org.slf4j.jul.source"/>
+<plugin id="org.slf4j.log4j"/>
+<plugin id="org.slf4j.log4j.source"/>
+<plugin id="org.w3c.css.sac" version="1.3.1.v200903091627"/>
+<plugin id="org.w3c.css.sac" version="1.3.1.v200903091627"/>
+<plugin id="org.w3c.css.sac.source" version="1.3.1.v200903091627"/>
+<plugin id="org.w3c.css.sac.source" version="1.3.1.v200903091627"/>
+<plugin id="org.w3c.dom.smil" version="1.0.0.v200806040011"/>
+<plugin id="org.w3c.dom.smil" version="1.0.0.v200806040011"/>
+<plugin id="org.w3c.dom.smil.source" version="1.0.0.v200806040011"/>
+<plugin id="org.w3c.dom.smil.source" version="1.0.0.v200806040011"/>
+<plugin id="org.w3c.dom.svg" version="1.1.0.v201011041433"/>
+<plugin id="org.w3c.dom.svg" version="1.1.0.v201011041433"/>
+<plugin id="org.w3c.dom.svg.source" version="1.1.0.v201011041433"/>
+<plugin id="org.w3c.dom.svg.source" version="1.1.0.v201011041433"/>
+</includeBundles>
 </target>
diff --git a/releng/_target/emfstore.target b/releng/_target/emfstore.target
index 2f18c5c..259e35a 100644
--- a/releng/_target/emfstore.target
+++ b/releng/_target/emfstore.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="EMFStore" sequenceNumber="226">
+<?pde version="3.8"?><target name="EMFStore" sequenceNumber="249">
 <locations>
 <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.emf.ecp.view.categorization.feature.feature.group" version="0.0.0"/>
@@ -37,23 +37,13 @@
 <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.platform.ide" version="0.0.0"/>
 <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
+<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.platform.sdk" version="0.0.0"/>
+<unit id="org.eclipse.pde.source.feature.group" version="0.0.0"/>
 <repository location="http://download.eclipse.org/eclipse/updates/4.2"/>
 </location>
 <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.apache.log4j.source" version="0.0.0"/>
-<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="0.0.0"/>
-<unit id="org.hamcrest.core" version="0.0.0"/>
-<unit id="org.eclipse.swtbot.forms.feature.group" version="0.0.0"/>
-<unit id="org.apache.log4j" version="0.0.0"/>
-<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="0.0.0"/>
-<unit id="org.hamcrest.library.source" version="0.0.0"/>
-<unit id="org.hamcrest.library" version="0.0.0"/>
-<unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
-<unit id="org.hamcrest.core.source" version="0.0.0"/>
-<repository location="http://download.eclipse.org/technology/swtbot/releases/latest/"/>
-</location>
-<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipselabs.mongo.emf.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipselabs.mongo.emf.feature.source.feature.group" version="0.0.0"/>
 <repository location="http://bryanhunt.github.com/mongo-emf/releases/0.7.1"/>
@@ -80,6 +70,7 @@
 <unit id="org.eclipse.net4j.sdk.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.compare.source.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.ocl.all.sdk.feature.group" version="0.0.0"/>
 <repository location="http://download.eclipse.org/releases/luna/"/>
 </location>
 <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
@@ -89,5 +80,23 @@
 <unit id="com.google.guava.source" version="0.0.0"/>
 <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20151221205849/repository/"/>
 </location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.edapt.runtime.feature.source.feature.group" version="0.0.0"/>
+<repository location="http://download.eclipse.org/edapt/releases/12x"/>
+</location>
+<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.hamcrest.core.source" version="1.3.0.v201303031735"/>
+<unit id="org.hamcrest.library.source" version="1.3.0.v201305281000"/>
+<unit id="org.eclipse.swtbot.forms.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.eclipse.swtbot.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.eclipse.swtbot.eclipse.test.junit.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>
+<unit id="org.hamcrest.core" version="1.3.0.v201303031735"/>
+<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.3.0.201506081302"/>
+<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
+<unit id="org.hamcrest.library" version="1.3.0.v201305281000"/>
+<repository location="http://download.eclipse.org/technology/swtbot/releases/2.3.0/"/>
+</location>
 </locations>
 </target>
diff --git a/releng/_target/pom.xml b/releng/_target/pom.xml
index 762ab9e..b105211 100644
--- a/releng/_target/pom.xml
+++ b/releng/_target/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/emfstore-parent/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>emfstore</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-target-definition</packaging>
 </project>
\ No newline at end of file
diff --git a/releng/emfstore-parent/pom.xml b/releng/emfstore-parent/pom.xml
index 0322be1..3b8bc2a 100644
--- a/releng/emfstore-parent/pom.xml
+++ b/releng/emfstore-parent/pom.xml
@@ -5,7 +5,7 @@
 
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>emfstore-parent</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<properties>
@@ -16,8 +16,8 @@
 		<maven-checkstyle-version>2.10</maven-checkstyle-version>
 		<jacoco-version>0.7.4.201502262128</jacoco-version>
 		<javadoc-version>2.9</javadoc-version>
-		<javadoc-title>EMFStore 1.7.0 API</javadoc-title>
-		<emfstore-version>1.7.0-SNAPSHOT</emfstore-version>
+		<javadoc-title>EMFStore 1.8.0 API</javadoc-title>
+		<emfstore-version>1.8.0-SNAPSHOT</emfstore-version>
 		<jarsigner-version>1.0.5</jarsigner-version>
 		<maven.antrun.plugin.version>1.7</maven.antrun.plugin.version>
 		<!-- Properties to enable jacoco code coverage analysis with sonar -->
diff --git a/releng/org.eclipse.emf.emfstore.p2repository/category.xml b/releng/org.eclipse.emf.emfstore.p2repository/category.xml
index 3444be6..dc976c2 100644
--- a/releng/org.eclipse.emf.emfstore.p2repository/category.xml
+++ b/releng/org.eclipse.emf.emfstore.p2repository/category.xml
@@ -48,6 +48,9 @@
    <feature id="org.eclipse.emf.emfstore.client.ui.rap.feature" version="0.0.0">
       <category name="org.eclipse.emf.emfstore.other"/>
    </feature>
+   <feature id="org.eclipse.emf.emfstore.migration.edapt.feature" version="0.0.0">
+      <category name="org.eclipse.emf.emfstore.other"/>
+   </feature>
    <category-def name="org.eclipse.emf.emfstore.core" label="EMFStore Core Features">
       <description>
          Core Features of EMFStore, a model repository for EMF.
diff --git a/releng/org.eclipse.emf.emfstore.p2repository/pom.xml b/releng/org.eclipse.emf.emfstore.p2repository/pom.xml
index 5709568..1085ac6 100644
--- a/releng/org.eclipse.emf.emfstore.p2repository/pom.xml
+++ b/releng/org.eclipse.emf.emfstore.p2repository/pom.xml
@@ -5,12 +5,12 @@
     <parent>
         <groupId>org.eclipse.emf.emfstore</groupId>
         <artifactId>emfstore-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
+        <version>1.8.0-SNAPSHOT</version>
         <relativePath>../emfstore-parent/</relativePath>
     </parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>org.eclipse.emf.emfstore.p2repository</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <packaging>eclipse-repository</packaging>
     
     <!-- see http://www.codetrails.com/blog/maven-tycho-how-to-configure-your-repos-mirror-and-statistics-uris -->
diff --git a/releng/org.eclipse.emf.emfstore.products/pom.xml b/releng/org.eclipse.emf.emfstore.products/pom.xml
index d995743..d451939 100644
--- a/releng/org.eclipse.emf.emfstore.products/pom.xml
+++ b/releng/org.eclipse.emf.emfstore.products/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../emfstore-parent/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.products</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-repository</packaging>
 
   <build>
diff --git a/releng/org.eclipse.emf.emfstore.releng.bundles/pom.xml b/releng/org.eclipse.emf.emfstore.releng.bundles/pom.xml
index a56f753..40479bf 100644
--- a/releng/org.eclipse.emf.emfstore.releng.bundles/pom.xml
+++ b/releng/org.eclipse.emf.emfstore.releng.bundles/pom.xml
@@ -6,18 +6,19 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../emfstore-parent/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>emfstore-bundles-parent</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
 		<module>../../bundles/org.eclipse.emf.emfstore.common</module>
 		<module>../../bundles/org.eclipse.emf.emfstore.common.model</module>
 		<module>../../bundles/org.eclipse.emf.emfstore.migration</module>
+		<module>../../bundles/org.eclipse.emf.emfstore.migration.edapt</module>
 		<module>../../bundles/org.eclipse.emf.emfstore.server</module>
 		<module>../../bundles/org.eclipse.emf.emfstore.server.model</module>
 		<module>../../bundles/org.eclipse.emf.emfstore.client.model.edit</module>
diff --git a/releng/org.eclipse.emf.emfstore.releng.features/pom.xml b/releng/org.eclipse.emf.emfstore.releng.features/pom.xml
index 19d053b..2b8086a 100644
--- a/releng/org.eclipse.emf.emfstore.releng.features/pom.xml
+++ b/releng/org.eclipse.emf.emfstore.releng.features/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../emfstore-parent/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>emfstore-features-parent</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
@@ -32,6 +32,7 @@
 		<module>../../features/org.eclipse.emf.emfstore.fuzzy.test.feature</module>
 		<module>../../features/org.eclipse.emf.emfstore.test.feature</module>
 		<module>../../features/org.eclipse.emf.emfstore.license.feature</module>
+		<module>../../features/org.eclipse.emf.emfstore.migration.edapt.feature</module>
 	</modules>
 
 	<!-- Parent used for features. This POM contains all build steps for code signing. -->
diff --git a/releng/org.eclipse.emf.emfstore.releng.tests/pom.xml b/releng/org.eclipse.emf.emfstore.releng.tests/pom.xml
index 49d5932..176b90f 100644
--- a/releng/org.eclipse.emf.emfstore.releng.tests/pom.xml
+++ b/releng/org.eclipse.emf.emfstore.releng.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../emfstore-parent/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>emfstore-tests-parent</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
@@ -30,5 +30,6 @@
 		<module>../../tests/org.eclipse.emf.emfstore.client.test.ui</module>
 		<module>../../tests/org.eclipse.emf.emfstore.performance.test</module>
 		<module>../../tests/org.eclipse.emf.emfstore.client.ui.test</module>
+		<module>../../tests/org.eclipse.emf.emfstore.migration.edapt.test</module>
 	</modules>
 </project>
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.emfstore.client.api.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.api.test/META-INF/MANIFEST.MF
index 93b7af2..3540096 100644
--- a/tests/org.eclipse.emf.emfstore.client.api.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.api.test/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Client API Tests
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.api.test
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.7.0"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.8.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.client.api.test;version="1.7.
+Export-Package: org.eclipse.emf.emfstore.client.api.test;version="1.8.
  0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)",
diff --git a/tests/org.eclipse.emf.emfstore.client.api.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.api.test/pom.xml
index 2683c9d..f10e262 100644
--- a/tests/org.eclipse.emf.emfstore.client.api.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.api.test/pom.xml
@@ -6,13 +6,13 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.api.test</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
     <build>
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.changetracking.test/META-INF/MANIFEST.MF
index 847e446..4aea1eb 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Changetracking Tests
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.changetracking.test
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.7.0"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.8.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.emf.emfstore.modelmutator;bundle-version="[2.0.0,3.0.0)"
 Export-Package: org.eclipse.emf.emfstore.client.changetracking.test;ve
- rsion="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.client.change
- tracking.test.canonization;version="1.7.0";x-internal:=true,org.eclip
- se.emf.emfstore.client.changetracking.test.command;version="1.7.0";x-
+ rsion="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.client.change
+ tracking.test.canonization;version="1.8.0";x-internal:=true,org.eclip
+ se.emf.emfstore.client.changetracking.test.command;version="1.8.0";x-
  internal:=true,org.eclipse.emf.emfstore.client.changetracking.test.no
- tification;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.
- client.changetracking.test.toplogy;version="1.7.0";x-internal:=true
+ tification;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.
+ client.changetracking.test.toplogy;version="1.8.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/org.eclipse.emf.emfstore.client.changetracking.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.changetracking.test/pom.xml
index 50b4fdb..e2e0cef 100644
--- a/tests/org.eclipse.emf.emfstore.client.changetracking.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.changetracking.test/pom.xml
@@ -7,13 +7,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-tests-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
 	</parent>
 
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>org.eclipse.emf.emfstore.client.changetracking.test</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/META-INF/MANIFEST.MF
index a7503f0..e7e10b9 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.conflictdetection.test
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.7.0"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.8.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)"
 Export-Package: org.eclipse.emf.emfstore.client.conflictdetection.test
- ;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.client.con
- flictdetection.test.merging;version="1.7.0";x-internal:=true; uses:="
+ ;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.client.con
+ flictdetection.test.merging;version="1.8.0";x-internal:=true; uses:="
  org.eclipse.emf.emfstore.internal.common.model,  org.eclipse.emf.ecor
  e,  org.eclipse.emf.emfstore.internal.client.model.changeTracking.mer
  ging,  org.eclipse.emf.emfstore.internal.client.model,  org.eclipse.e
diff --git a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/pom.xml
index d1dec39..3b69b43 100644
--- a/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.conflictdetection.test/pom.xml
@@ -7,13 +7,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-tests-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
 	</parent>
 
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>org.eclipse.emf.emfstore.client.conflictdetection.test</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.emfstore.client.example.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.example.test/META-INF/MANIFEST.MF
index c5f0d35..36c5a88 100644
--- a/tests/org.eclipse.emf.emfstore.client.example.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.example.test/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore API Test
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.example.test
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.example.merging;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.example.merging;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.example.helloworld;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)",
  org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)"
 Export-Package: org.eclipse.emf.emfstore.client.example.test;version="
- 1.7.0";x-internal:=true
+ 1.8.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.emfstore.client.example.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.example.test/pom.xml
index eee8017..a9ff37d 100644
--- a/tests/org.eclipse.emf.emfstore.client.example.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.example.test/pom.xml
@@ -6,13 +6,13 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.example.test</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
 <build>
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.recording.test/META-INF/MANIFEST.MF
index 82b9d97..f477ba4 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.recording.test
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.7.0"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.8.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)"
 Export-Package: org.eclipse.emf.emfstore.client.recording.test;version
- ="1.7.0";x-internal:=true
+ ="1.8.0";x-internal:=true
diff --git a/tests/org.eclipse.emf.emfstore.client.recording.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.recording.test/pom.xml
index c274331..45263ff 100644
--- a/tests/org.eclipse.emf.emfstore.client.recording.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.recording.test/pom.xml
@@ -6,13 +6,13 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.recording.test</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
 <build>
diff --git a/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF
index 80bbf33..92d1fa3 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.test.alltests/META-INF/MANIFEST.MF
@@ -6,8 +6,8 @@
 Bundle-Activator: org.eclipse.emf.emfstore.client.test.alltests.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.emfstore.client.test;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.emf.emfstore.client.test.ui;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.client;bundle-version="1.7.0",
+ org.eclipse.emf.emfstore.client.test.ui;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="1.8.0",
  org.junit;bundle-version="4.0.0"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF
index 33c47f2..90332ac 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.test.ui/META-INF/MANIFEST.MF
@@ -2,25 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Client UI Tests
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.test.ui;singleton:=true
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.emfstore.client.test;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.emf.emfstore.client.ui;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.swtbot.eclipse.core;bundle-version="[2.1.0,3.0.0)",
  org.eclipse.swtbot.eclipse.finder;bundle-version="[2.1.0,3.0.0)",
  org.eclipse.swtbot.forms.finder;bundle-version="[2.1.0,3.0.0)",
  org.eclipse.swtbot.junit4_x;bundle-version="[2.1.0,3.0.0)",
  org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.expressions;bundle-version="3.4.401"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.emfstore.client.test.ui.Activator
 Bundle-ClassPath: .
-Export-Package: org.eclipse.emf.emfstore.client.test.ui;version="1.7.0
+Export-Package: org.eclipse.emf.emfstore.client.test.ui;version="1.8.0
  ";x-internal:=true,org.eclipse.emf.emfstore.client.test.ui.conflictde
- tection;version="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.cli
- ent.test.ui.controllers;version="1.7.0";x-internal:=true,org.eclipse.
- emf.emfstore.client.test.ui.testers;version="1.7.0"
+ tection;version="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.cli
+ ent.test.ui.controllers;version="1.8.0";x-internal:=true,org.eclipse.
+ emf.emfstore.client.test.ui.testers;version="1.8.0"
diff --git a/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml b/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml
index 65ec3c8..0d49351 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.test.ui/pom.xml
@@ -7,13 +7,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-tests-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
 	</parent>
 
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>org.eclipse.emf.emfstore.client.test.ui</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/AllUITests.java b/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/AllUITests.java
index 4e6fcf4..f15b2fc 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/AllUITests.java
+++ b/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/AllUITests.java
@@ -41,7 +41,7 @@
 
 	public static final int TIMEOUT = 20000;
 
-	private static final Optional<Integer> MIN_CHANGEPACKAGE_FRAGMENT_SIZE = Optional.of(1);
+	private static final Optional<Integer> MIN_CHANGEPACKAGE_FRAGMENT_SIZE = Optional.of(10000);
 
 	private static Behavior clientBehavior = Configuration.getClientBehavior();
 	private static Optional<Integer> clientFragmentSize;
diff --git a/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/controllers/AllUIControllerTests.java b/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/controllers/AllUIControllerTests.java
index df3b0d5..77458c9 100644
--- a/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/controllers/AllUIControllerTests.java
+++ b/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/controllers/AllUIControllerTests.java
@@ -31,6 +31,7 @@
 	UIDeleteRemoteProjectControllerTest.class,
 	UIMergeControllerTest.class,
 	UIRevertCommitControllerTest.class,
+	UIRemoveServerControllerTest.class,
 	UIRevertCommitControllerTest2.class,
 	UIServerControllerTest.class,
 	UISessionControllerTest.class,
@@ -40,7 +41,9 @@
 	UIPagedUpdateProjectControllerTest.class,
 	UIShowHistoryControllerTest.class,
 	UIShowHistoryControllerForElementTest.class,
-	UIUndoLastOperationControllerTest.class })
+	UIUndoLastOperationControllerTest.class
+})
+
 public class AllUIControllerTests {
 
 }
diff --git a/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/controllers/UIRemoveServerControllerTest.java b/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/controllers/UIRemoveServerControllerTest.java
new file mode 100644
index 0000000..4959c0f
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.client.test.ui/src/org/eclipse/emf/emfstore/client/test/ui/controllers/UIRemoveServerControllerTest.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Edgar Mueller - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.client.test.ui.controllers;
+
+import org.eclipse.emf.emfstore.client.ESServer;
+import org.eclipse.emf.emfstore.client.ESWorkspaceProvider;
+import org.eclipse.emf.emfstore.client.test.common.util.ProjectUtil;
+import org.eclipse.emf.emfstore.internal.client.ui.controller.UIRemoveServerController;
+import org.eclipse.emf.emfstore.server.exceptions.ESException;
+import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
+import org.eclipse.swtbot.swt.finder.results.VoidResult;
+
+/**
+ * SWTBot test for {@link UIRemoveServerController}.
+ *
+ * @author emueller
+ *
+ */
+public class UIRemoveServerControllerTest extends AbstractUIControllerTest {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see org.eclipse.emf.emfstore.client.test.ui.controllers.AbstractUIControllerTest#testController()
+	 */
+	@Override
+	public void testController() throws ESException {
+		// share project in order to have one active project
+		ProjectUtil.share(getUsersession(), getLocalProject());
+		// removal should fail
+		removeServer();
+	}
+
+	private void removeServer() {
+		final int howManyServers = ESWorkspaceProvider.INSTANCE.getWorkspace().getServers().size();
+		final ESServer serverToBeRemoved = ESWorkspaceProvider.INSTANCE.getWorkspace().getServers()
+			.get(howManyServers - 1);
+		UIThreadRunnable.asyncExec(new VoidResult() {
+			public void run() {
+				final UIRemoveServerController removeServerController = new UIRemoveServerController(
+					getBot().getDisplay().getActiveShell(),
+					serverToBeRemoved);
+				removeServerController.execute();
+			}
+		});
+		getBot().button("Yes").click();
+		// expect warning dialog that can be confirmed by clicking OK
+		getBot().button("OK").click();
+	}
+}
diff --git a/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF
index 5c2dd71..f7cab08 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.test/META-INF/MANIFEST.MF
@@ -6,9 +6,9 @@
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.7.0,2.0.0)",
- org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.7.0,2.0.0)",
+Require-Bundle: org.eclipse.emf.emfstore.client.model.edit;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.common.model.edit;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.emfstore.server.model.edit;bundle-version="[1.8.0,2.0.0)",
  org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.emfstore.client.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.test/pom.xml
index 8ee0b95..f429ea2 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.test/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/common/ChangePackageUtilTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/common/ChangePackageUtilTest.java
index 5d4c398..9b1b896 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/common/ChangePackageUtilTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/common/ChangePackageUtilTest.java
@@ -23,9 +23,8 @@
 import org.eclipse.emf.emfstore.client.test.common.dsl.Create;
 import org.eclipse.emf.emfstore.client.test.common.util.ProjectUtil;
 import org.eclipse.emf.emfstore.internal.client.model.Configuration;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.AbstractChangePackage;
-import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackage;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackageEnvelope;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.FileBasedChangePackage;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningFactory;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.CompositeOperation;
 import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.CreateDeleteOperation;
@@ -36,6 +35,7 @@
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import com.google.common.base.Optional;
@@ -71,9 +71,10 @@
 		Configuration.getClientBehavior().setChangePackageFragmentSize(fragmentationSize);
 	}
 
+	@Ignore
 	@Test
 	public void shouldEmitAtLeastOneElement() throws ESException {
-		final ChangePackage changePackage = VersioningFactory.eINSTANCE.createChangePackage();
+		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
 		final Iterator<ChangePackageEnvelope> it = ChangePackageUtil.splitChangePackage(changePackage, 1);
 
 		assertTrue(it.hasNext());
@@ -95,14 +96,15 @@
 		Add.toProject(getLocalProject(), bar);
 		Add.toProject(getLocalProject(), baz);
 
-		final AbstractChangePackage localChangePackage = getProjectSpace().getLocalChangePackage();
-		final Iterator<ChangePackageEnvelope> it = ChangePackageUtil.splitChangePackage(localChangePackage, 2);
+		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+		final Iterator<ChangePackageEnvelope> it = ChangePackageUtil.splitChangePackage(changePackage, 2);
 
 		assertTrue(it.hasNext());
 		assertTrue(it.hasNext());
 		assertTrue(it.hasNext());
 	}
 
+	@Ignore
 	@Test
 	public void shouldSplitOperationsIntoChunks() throws ESException {
 		ProjectUtil.share(getUsersession(), getLocalProject());
@@ -114,8 +116,8 @@
 		Add.toProject(getLocalProject(), bar);
 		Add.toProject(getLocalProject(), baz);
 
-		final AbstractChangePackage localChangePackage = getProjectSpace().getLocalChangePackage();
-		final Iterator<ChangePackageEnvelope> it = ChangePackageUtil.splitChangePackage(localChangePackage, 2);
+		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+		final Iterator<ChangePackageEnvelope> it = ChangePackageUtil.splitChangePackage(changePackage, 2);
 
 		assertTrue(it.hasNext());
 		assertEquals(2, it.next().getFragment().size());
@@ -124,6 +126,7 @@
 		assertFalse(it.hasNext());
 	}
 
+	@Ignore
 	@Test
 	public void shouldSetIsLastFlagCorrectly() throws ESException {
 		ProjectUtil.share(getUsersession(), getLocalProject());
@@ -135,8 +138,8 @@
 		Add.toProject(getLocalProject(), bar);
 		Add.toProject(getLocalProject(), baz);
 
-		final AbstractChangePackage localChangePackage = getProjectSpace().getLocalChangePackage();
-		final Iterator<ChangePackageEnvelope> it = ChangePackageUtil.splitChangePackage(localChangePackage, 2);
+		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+		final Iterator<ChangePackageEnvelope> it = ChangePackageUtil.splitChangePackage(changePackage, 2);
 
 		final ChangePackageEnvelope firstFragment = it.next();
 		final ChangePackageEnvelope secondFragment = it.next();
@@ -145,11 +148,12 @@
 		assertTrue(secondFragment.isLast());
 	}
 
+	@Ignore
 	@Test
 	public void shouldConsiderRootOperationBoundaries() {
 
-		final ChangePackage changePackage = VersioningFactory.eINSTANCE.createChangePackage();
-		changePackage.getOperations().add(createDummyCompositeOperation(3));
+		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+		changePackage.add(createDummyCompositeOperation(3));
 
 		final Iterator<ChangePackageEnvelope> iterator = ChangePackageUtil.splitChangePackage(changePackage, 1);
 
@@ -162,10 +166,10 @@
 
 	@Test
 	public void shouldConsiderRootOperationBoundariesOfMultipleOperations() {
-		final ChangePackage changePackage = VersioningFactory.eINSTANCE.createChangePackage();
-		changePackage.getOperations().add(createDummyCompositeOperation(3));
-		changePackage.getOperations().add(createDummyCompositeOperation(2));
-		changePackage.getOperations().add(createDummyCompositeOperation(6));
+		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
+		changePackage.add(createDummyCompositeOperation(3));
+		changePackage.add(createDummyCompositeOperation(2));
+		changePackage.add(createDummyCompositeOperation(6));
 
 		final Iterator<ChangePackageEnvelope> iterator = ChangePackageUtil.splitChangePackage(changePackage, 5);
 
@@ -175,9 +179,10 @@
 		assertTrue(iterator.next().isLast());
 	}
 
+	@Ignore
 	@Test(expected = NoSuchElementException.class)
 	public void shouldThrowNoSuchElementException() {
-		final ChangePackage changePackage = VersioningFactory.eINSTANCE.createChangePackage();
+		final FileBasedChangePackage changePackage = VersioningFactory.eINSTANCE.createFileBasedChangePackage();
 		final Iterator<ChangePackageEnvelope> iterator = ChangePackageUtil.splitChangePackage(changePackage, 5);
 
 		assertTrue(iterator.next().isLast());
diff --git a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/persistence/ProjectLastUpdatedTest.java b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/persistence/ProjectLastUpdatedTest.java
index bbc79dd..4ecfff4 100644
--- a/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/persistence/ProjectLastUpdatedTest.java
+++ b/tests/org.eclipse.emf.emfstore.client.test/src/org/eclipse/emf/emfstore/internal/client/test/persistence/ProjectLastUpdatedTest.java
@@ -11,7 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.emfstore.internal.client.test.persistence;
 
-import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
@@ -75,7 +75,7 @@
 		final Date before = clonedProject.getLastUpdated();
 		clonedProject.update(new NullProgressMonitor());
 		final Date after = clonedProject.getLastUpdated();
-		assertNotEquals(before, after);
+		assertFalse(before.equals(after));
 	}
 
 }
diff --git a/tests/org.eclipse.emf.emfstore.client.ui.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.client.ui.test/META-INF/MANIFEST.MF
index 0d594b2..eb5da8b 100644
--- a/tests/org.eclipse.emf.emfstore.client.ui.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.client.ui.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Client UI Tests
 Bundle-SymbolicName: org.eclipse.emf.emfstore.client.ui.test
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client.ui;bundle-version="[1.7.0,2.0.0)"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client.ui;bundle-version="[1.8.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.emfstore.client.ui.test;version="1.7.0
+Export-Package: org.eclipse.emf.emfstore.client.ui.test;version="1.8.0
  ";x-internal:=true,org.eclipse.emf.emfstore.internal.client.ui.common
- ;version="1.7.0";x-internal:=true
+ ;version="1.8.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)"
diff --git a/tests/org.eclipse.emf.emfstore.client.ui.test/pom.xml b/tests/org.eclipse.emf.emfstore.client.ui.test/pom.xml
index 20b356e..5b70236 100644
--- a/tests/org.eclipse.emf.emfstore.client.ui.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.client.ui.test/pom.xml
@@ -6,13 +6,13 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.emfstore</groupId>
   <artifactId>org.eclipse.emf.emfstore.client.ui.test</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>1.8.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
     <build>
diff --git a/tests/org.eclipse.emf.emfstore.fuzzy.emf.diff.test/pom.xml b/tests/org.eclipse.emf.emfstore.fuzzy.emf.diff.test/pom.xml
index 9e9ef8d..7e7dd3a 100644
--- a/tests/org.eclipse.emf.emfstore.fuzzy.emf.diff.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.fuzzy.emf.diff.test/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml b/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml
index f2a8ce8..936dea9 100644
--- a/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.fuzzy.emf.test/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
   <groupId>org.eclipse.emf.emfstore</groupId>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.checkstyle b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.checkstyle
new file mode 100644
index 0000000..e620597
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESM Checkstyle For Tests" location="/EMFStoreDeveloper/checkstyle/esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="all Java files" enabled="true" check-config-name="ESM Checkstyle For Tests" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.classpath b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.classpath
new file mode 100644
index 0000000..64c5e31
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.project b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.project
new file mode 100644
index 0000000..54d0b88
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.emfstore.migration.edapt.test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.core.runtime.prefs
similarity index 99%
copy from features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.runtime.prefs
copy to tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.core.runtime.prefs
index c522e1f..5a0ad22 100644
--- a/features/org.eclipse.emf.emfstore.migration.cope.feature/.settings/org.eclipse.core.runtime.prefs
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.core.runtime.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-line.separator=\n
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..2cf5f27
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,418 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8d55df1
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,115 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/AllMigrationEdaptTests.launch b/tests/org.eclipse.emf.emfstore.migration.edapt.test/AllMigrationEdaptTests.launch
new file mode 100644
index 0000000..8d713ce
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/AllMigrationEdaptTests.launch
@@ -0,0 +1,43 @@
+<?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="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/AllMigrationEdaptTests"/>
+<booleanAttribute key="default" value="false"/>
+<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.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/test/AllMigrationEdaptTests.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.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.emfstore.internal.migration.edapt.test.AllMigrationEdaptTests"/>
+<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.migration.edapt.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.google.guava@default:default,com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.xml@default:default,lpg.runtime.java@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.java7@default:false,org.eclipse.core.filesystem.linux.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.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@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.edapt.common@default:default,org.eclipse.emf.edapt.declaration@default:default,org.eclipse.emf.edapt.history@default:default,org.eclipse.emf.edapt.migration@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.ocl.common@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl@default:default,org.eclipse.osgi*3.10.102.v20160118-1700@-1:true,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services*3.5.0.v20150519-2006@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@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.recording.test@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.edapt.test@default:false,org.eclipse.emf.emfstore.migration.edapt@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: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"/>
+<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="true"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.migration.edapt.test/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..61331ff
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.emfstore.migration.edapt.test;singleton:=true
+Bundle-Version: 1.8.0.qualifier
+Bundle-ClassPath: .
+Fragment-Host: org.eclipse.emf.emfstore.migration.edapt;bundle-version="[1.8.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Export-Package: org.eclipse.emf.emfstore.internal.migration.edapt;vers
+ ion="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.internal.migrat
+ ion.edapt.test;version="1.8.0";x-internal:=true,org.eclipse.emf.emfst
+ ore.migration.edapt.test.model.a.model;version="1.8.0",org.eclipse.em
+ f.emfstore.migration.edapt.test.model.a.model.impl;version="1.8.0",or
+ g.eclipse.emf.emfstore.migration.edapt.test.model.a.model.util;versio
+ n="1.8.0",org.eclipse.emf.emfstore.migration.edapt.test.model.d.model
+ ;version="1.8.0",org.eclipse.emf.emfstore.migration.edapt.test.model.
+ d.model.impl;version="1.8.0",org.eclipse.emf.emfstore.migration.edapt
+ .test.model.d.model.util;version="1.8.0"
+Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)"
+Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/build.properties b/tests/org.eclipse.emf.emfstore.migration.edapt.test/build.properties
new file mode 100644
index 0000000..2a72eab
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/build.properties
@@ -0,0 +1,18 @@
+# Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+# 
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# EclipseSource Munich - initial API and implementation
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.properties,\
+               fragment.xml
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/1/expected.xmi b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/1/expected.xmi
new file mode 100644
index 0000000..fcbaa28
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/1/expected.xmi
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.a:AClazz" xmi:id="_6P3dUNcTEeW10o5bJuBejA"/>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/1/projectstate-1.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/1/projectstate-1.ups
new file mode 100644
index 0000000..dcd8ba8
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/1/projectstate-1.ups
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.a:A" xmi:id="_6P3dUNcTEeW10o5bJuBejA"/>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-1.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-1.ucp
new file mode 100644
index 0000000..a11586a
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-1.ucp
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a">
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation">
+    <modelElementId id="_6P3dUNcTEeW10o5bJuBejA"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:A"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_6P3dUNcTEeW10o5bJuBejA"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-2.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-2.ucp
new file mode 100644
index 0000000..c467cb0
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-2.ucp
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a">
+  <logMessage author="super" message="Commit" clientDate="2016-02-19T15:20:21.923+0100"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_6P884NcTEeW10o5bJuBejA" clientDate="2016-02-19T15:20:21.808+0100">
+    <modelElementId id="_6P3dUNcTEeW10o5bJuBejA"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:A"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_6P3dUNcTEeW10o5bJuBejA"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-3.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-3.ucp
new file mode 100644
index 0000000..d9b68f9
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/changepackage-3.ucp
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a">
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation">
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:A"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_6P3dUNcTEeW10o5bJuBejA"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore5661482833897137554.xmi b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore5661482833897137554.xmi
new file mode 100644
index 0000000..b5ccc43
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore5661482833897137554.xmi
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2">
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_nWik4NcpEeWXpr-TVzJa6g">
+    <modelElementId id="_6P3dUNcTEeW10o5bJuBejA"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:AClazz"/>
+    <eObjectToIdMap key="//@operations.0/@modelElement">
+      <value id="_nYNY0tcpEeWXpr-TVzJa6g"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore7345308363034172688.xmi b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore7345308363034172688.xmi
new file mode 100644
index 0000000..2ad9f62
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore7345308363034172688.xmi
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2">
+  <logMessage author="super" message="Commit" clientDate="2016-02-19T15:20:21.923+0100"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_6P884NcTEeW10o5bJuBejA" clientDate="2016-02-19T15:20:21.808+0100">
+    <modelElementId id="_6P3dUNcTEeW10o5bJuBejA"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:AClazz"/>
+    <eObjectToIdMap key="//@operations.0/@modelElement">
+      <value id="_VkoCctcpEeWi35v-Lb03AQ"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore8950706431703332367.xmi b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore8950706431703332367.xmi
new file mode 100644
index 0000000..ffef734
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/emfstore8950706431703332367.xmi
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2">
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="__hYNsNcoEeWcG7RZ3L9hRA">
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:AClazz"/>
+    <eObjectToIdMap key="//@operations.0/@modelElement">
+      <value id="_6P3dUNcTEeW10o5bJuBejA"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/expected.xmi b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/expected.xmi
new file mode 100644
index 0000000..ee5abb0
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/2/expected.xmi
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2">
+  <logMessage author="super" message="Commit" clientDate="2016-02-19T15:20:21.923+0100"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_6P884NcTEeW10o5bJuBejA" clientDate="2016-02-19T15:20:21.808+0100">
+    <modelElementId id="_6P3dUNcTEeW10o5bJuBejA"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:AClazz"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_6P3dUNcTEeW10o5bJuBejA"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/3/projectstate-1.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/3/projectstate-1.ups
new file mode 100644
index 0000000..2bd5f2c
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/3/projectstate-1.ups
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migra/2tion/eda/2pt/test/a/2">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.a:AClazz" xmi:id="_6fyoUNcWEeWHW4r84OU_7Q"/>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/4/changepackage-1.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/4/changepackage-1.ucp
new file mode 100644
index 0000000..87d00c5
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/4/changepackage-1.ucp
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.a="http://eclipse.org/emf/emfstore/migra/2tion/eda/2pt/test/a/2">
+  <logMessage author="super" message="Commit" clientDate="2016-02-19T15:41:52.117+0100"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_6f1EkNcWEeWHW4r84OU_7Q" clientDate="2016-02-19T15:41:51.963+0100">
+    <modelElementId id="_6fyoUNcWEeWHW4r84OU_7Q"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.a:AClazz"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_6fyoUNcWEeWHW4r84OU_7Q"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/5/projectstate-0.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/5/projectstate-0.ups
new file mode 100644
index 0000000..631e003
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/5/projectstate-0.ups
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model">
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp
new file mode 100644
index 0000000..05886aa
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" filePath="/home/johannes/Workspaces/junit-workspace/profiles/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp.1">
+  <logMessage author="super" message="Added root Element" clientDate="2016-03-31T12:15:37.118+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp.1 b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp.1
new file mode 100644
index 0000000..52b530c
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp.1
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_gw6ZQPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:36.919+0200">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp.1.temp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp.1.temp
new file mode 100644
index 0000000..52b530c
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-1.ucp.1.temp
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_gw6ZQPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:36.919+0200">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp
new file mode 100644
index 0000000..af6a75d
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" filePath="/home/johannes/Workspaces/junit-workspace/profiles/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp.1">
+  <logMessage author="super" message="Added child Element" clientDate="2016-03-31T12:15:37.517+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp.1 b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp.1
new file mode 100644
index 0000000..6a1a78b
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp.1
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_g1y5QfcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.428+0200">
+  <modelElementId id="_g1y5QPcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_g1y5QPcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:SingleReferenceOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g11VgPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.432+0200" featureName="ref">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  <newValue id="_g1y5QPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:SingleReferenceOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp.1.temp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp.1.temp
new file mode 100644
index 0000000..6a1a78b
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-2.ucp.1.temp
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_g1y5QfcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.428+0200">
+  <modelElementId id="_g1y5QPcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_g1y5QPcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:SingleReferenceOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g11VgPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.432+0200" featureName="ref">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  <newValue id="_g1y5QPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:SingleReferenceOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp
new file mode 100644
index 0000000..811e6ac
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" filePath="/home/johannes/Workspaces/junit-workspace/profiles/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp.1">
+  <logMessage author="super" message="Added multiple child elements" clientDate="2016-03-31T12:15:37.955+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp.1 b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp.1
new file mode 100644
index 0000000..be793e9
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp.1
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_g57LUfcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.861+0200">
+  <modelElementId id="_g57LUPcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_g57LUPcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_g57yYfcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.862+0200">
+  <modelElementId id="_g57yYPcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_g57yYPcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiReferenceOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g58ZcPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.863+0200" featureName="refs" add="true">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  <referencedModelElements id="_g57LUPcpEeWGu-azpxf_CA"/>
+  <referencedModelElements id="_g57yYPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiReferenceOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp.1.temp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp.1.temp
new file mode 100644
index 0000000..be793e9
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-3.ucp.1.temp
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_g57LUfcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.861+0200">
+  <modelElementId id="_g57LUPcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_g57LUPcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d" identifier="_g57yYfcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.862+0200">
+  <modelElementId id="_g57yYPcpEeWGu-azpxf_CA"/>
+  <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+  <eObjectToIdMap key="//@modelElement">
+    <value id="_g57yYPcpEeWGu-azpxf_CA"/>
+  </eObjectToIdMap>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiReferenceOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g58ZcPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:37.863+0200" featureName="refs" add="true">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+  <referencedModelElements id="_g57LUPcpEeWGu-azpxf_CA"/>
+  <referencedModelElements id="_g57yYPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiReferenceOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp
new file mode 100644
index 0000000..f51b5b6
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" filePath="/home/johannes/Workspaces/junit-workspace/profiles/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp.1">
+  <logMessage author="super" message="Setting attributes" clientDate="2016-03-31T12:15:38.547+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp.1 b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp.1
new file mode 100644
index 0000000..51780b4
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp.1
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_lucPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED00057400026431">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_ludPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED00057400026432">
+  <modelElementId id="_g1y5QPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_luePcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED0005740003643331">
+  <modelElementId id="_g57LUPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_lufPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED0005740003643332">
+  <modelElementId id="_g57yYPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp.1.temp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp.1.temp
new file mode 100644
index 0000000..51780b4
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-4.ucp.1.temp
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_lucPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED00057400026431">
+  <modelElementId id="_gw2u4PcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_ludPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED00057400026432">
+  <modelElementId id="_g1y5QPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_luePcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED0005740003643331">
+  <modelElementId id="_g57LUPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_g_lufPcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:38.455+0200" featureName="att" newValue="ACED0005740003643332">
+  <modelElementId id="_g57yYPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp
new file mode 100644
index 0000000..9ae1a2d
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" filePath="/home/johannes/Workspaces/junit-workspace/profiles/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp.1">
+  <logMessage author="super" message="Setting multi attributes" clientDate="2016-03-31T12:15:39.155+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:FileBasedChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp.1 b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp.1
new file mode 100644
index 0000000..20612b3
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp.1
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_hFSt0PcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:39.053+0200" featureName="atts" add="true">
+  <modelElementId id="_g57LUPcpEeWGu-azpxf_CA"/>
+  <indexes>0</indexes>
+  <indexes>1</indexes>
+  <referencedValues>ACED0005740003666F6F</referencedValues>
+  <referencedValues>ACED0005740003626172</referencedValues>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_hFSt1PcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:39.053+0200" featureName="atts" add="true">
+  <modelElementId id="_g57yYPcpEeWGu-azpxf_CA"/>
+  <indexes>0</indexes>
+  <indexes>1</indexes>
+  <referencedValues>ACED0005740003464F4F</referencedValues>
+  <referencedValues>ACED0005740003424152</referencedValues>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp.1.temp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp.1.temp
new file mode 100644
index 0000000..20612b3
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/changepackage-5.ucp.1.temp
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_hFSt0PcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:39.053+0200" featureName="atts" add="true">
+  <modelElementId id="_g57LUPcpEeWGu-azpxf_CA"/>
+  <indexes>0</indexes>
+  <indexes>1</indexes>
+  <referencedValues>ACED0005740003666F6F</referencedValues>
+  <referencedValues>ACED0005740003626172</referencedValues>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation>
+</operations>
+<operations>
+<org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" identifier="_hFSt1PcpEeWGu-azpxf_CA" clientDate="2016-03-31T12:15:39.053+0200" featureName="atts" add="true">
+  <modelElementId id="_g57yYPcpEeWGu-azpxf_CA"/>
+  <indexes>0</indexes>
+  <indexes>1</indexes>
+  <referencedValues>ACED0005740003464F4F</referencedValues>
+  <referencedValues>ACED0005740003424152</referencedValues>
+</org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation>
+</operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectHistory.uph b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectHistory.uph
new file mode 100644
index 0000000..0fa4bf8
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectHistory.uph
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model:ProjectHistory xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model="http://eclipse.org/emf/emfstore/server/model" projectName="DemoProject" projectDescription="">
+  <projectId id="_gvO-QPcpEeWGu-azpxf_CA"/>
+  <versions href="versions/0#/"/>
+  <versions href="versions/1#/"/>
+  <versions href="versions/2#/"/>
+  <versions href="versions/3#/"/>
+  <versions href="versions/4#/"/>
+  <versions href="versions/5#/"/>
+  <branches name="trunk">
+    <head identifier="5" projectStateChecksum="7330538291069755227"/>
+    <source/>
+  </branches>
+</org.eclipse.emf.emfstore.internal.server.model:ProjectHistory>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-0.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-0.ups
new file mode 100644
index 0000000..ba602db
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-0.ups
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model"/>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-3.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-3.ups
new file mode 100644
index 0000000..6e20c8b
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-3.ups
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_gw2u4PcpEeWGu-azpxf_CA" ref="#_g1y5QPcpEeWGu-azpxf_CA" refs="#_g57LUPcpEeWGu-azpxf_CA #_g57yYPcpEeWGu-azpxf_CA"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g1y5QPcpEeWGu-azpxf_CA"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g57LUPcpEeWGu-azpxf_CA"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g57yYPcpEeWGu-azpxf_CA"/>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-4.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-4.ups
new file mode 100644
index 0000000..6ade715
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-4.ups
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_gw2u4PcpEeWGu-azpxf_CA" att="d1" ref="#_g1y5QPcpEeWGu-azpxf_CA" refs="#_g57LUPcpEeWGu-azpxf_CA #_g57yYPcpEeWGu-azpxf_CA"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g1y5QPcpEeWGu-azpxf_CA" att="d2"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g57LUPcpEeWGu-azpxf_CA" att="d31"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g57yYPcpEeWGu-azpxf_CA" att="d32"/>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-5.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-5.ups
new file mode 100644
index 0000000..33e295c
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/projectstate-5.ups
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_gw2u4PcpEeWGu-azpxf_CA" att="d1" ref="#_g1y5QPcpEeWGu-azpxf_CA" refs="#_g57LUPcpEeWGu-azpxf_CA #_g57yYPcpEeWGu-azpxf_CA"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g1y5QPcpEeWGu-azpxf_CA" att="d2"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g57LUPcpEeWGu-azpxf_CA" att="d31">
+    <atts>foo</atts>
+    <atts>bar</atts>
+  </modelElements>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_g57yYPcpEeWGu-azpxf_CA" att="d32">
+    <atts>FOO</atts>
+    <atts>BAR</atts>
+  </modelElements>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-0.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-0.upv
new file mode 100644
index 0000000..303d74d
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-0.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="1#/">
+  <primarySpec/>
+  <logMessage author="super" message="Initial commit" date="2016-03-31T12:15:36.737+0200" clientDate="2016-03-31T12:15:36.673+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-1.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-1.upv
new file mode 100644
index 0000000..7abc285
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-1.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="2#/" previousVersion="0#/">
+  <primarySpec identifier="1" projectStateChecksum="-1351035061437285832"/>
+  <logMessage author="super" message="Added root Element" date="2016-03-31T12:15:37.378+0200" clientDate="2016-03-31T12:15:37.118+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-2.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-2.upv
new file mode 100644
index 0000000..c30875a
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-2.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="3#/" previousVersion="1#/">
+  <primarySpec identifier="2" projectStateChecksum="6437267355085018974"/>
+  <logMessage author="super" message="Added child Element" date="2016-03-31T12:15:37.810+0200" clientDate="2016-03-31T12:15:37.517+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-3.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-3.upv
new file mode 100644
index 0000000..6153064
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-3.upv
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="4#/" previousVersion="2#/">
+  <primarySpec identifier="3" projectStateChecksum="-4621077678384738851"/>
+  <tagSpecs name="foo"/>
+  <logMessage author="super" message="Added multiple child elements" date="2016-03-31T12:15:38.323+0200" clientDate="2016-03-31T12:15:37.955+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-4.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-4.upv
new file mode 100644
index 0000000..c473b09
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-4.upv
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="5#/" previousVersion="3#/">
+  <primarySpec identifier="4" projectStateChecksum="4564190854053106915"/>
+  <tagSpecs name="bar"/>
+  <logMessage author="super" message="Setting attributes" date="2016-03-31T12:15:38.948+0200" clientDate="2016-03-31T12:15:38.547+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-5.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-5.upv
new file mode 100644
index 0000000..a6c4fd5
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/project-_gvO-QPcpEeWGu-azpxf_CA/version-5.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" previousVersion="4#/">
+  <primarySpec identifier="5" projectStateChecksum="7330538291069755227"/>
+  <logMessage author="super" message="Setting multi attributes" date="2016-03-31T12:15:39.336+0200" clientDate="2016-03-31T12:15:39.155+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/storage.uss b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/storage.uss
new file mode 100644
index 0000000..acf3459
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/fbcp/default_dev/storage.uss
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model:ServerSpace xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model="http://eclipse.org/emf/emfstore/server/model" xmlns:org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles="http://eclipse.org/emf/emfstore/server/model/roles" projects="projects/_gvO-QPcpEeWGu-azpxf_CA/projecthistory#/">
+  <users identifier="_glfzcfcpEeWGu-azpxf_CA" name="super" description="default server admin (superuser)" firstName="super" lastName="user">
+    <roles xsi:type="org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles:ServerAdmin"/>
+  </users>
+</org.eclipse.emf.emfstore.internal.server.model:ServerSpace>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-1.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-1.ucp
new file mode 100644
index 0000000..556609f
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-1.ucp
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <logMessage author="super" message="Added root Element" clientDate="2016-03-31T12:12:00.606+0200"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_AgY4MPcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:00.439+0200">
+    <modelElementId id="_AgUmwPcpEeWnk-MlMuAN6w"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_AgUmwPcpEeWnk-MlMuAN6w"/>
+    </eObjectToIdMap>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-2.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-2.ucp
new file mode 100644
index 0000000..f6c01f5
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-2.ucp
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <logMessage author="super" message="Added child Element" clientDate="2016-03-31T12:12:00.942+0200"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_Aj100fcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:00.797+0200">
+    <modelElementId id="_Aj100PcpEeWnk-MlMuAN6w"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_Aj100PcpEeWnk-MlMuAN6w"/>
+    </eObjectToIdMap>
+  </operations>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:SingleReferenceOperation" identifier="_Aj44IPcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:00.802+0200" featureName="ref">
+    <modelElementId id="_AgUmwPcpEeWnk-MlMuAN6w"/>
+    <newValue id="_Aj100PcpEeWnk-MlMuAN6w"/>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-3.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-3.ucp
new file mode 100644
index 0000000..6031389
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-3.ucp
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <logMessage author="super" message="Added multiple child elements" clientDate="2016-03-31T12:12:01.170+0200"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_AmpRMfcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.092+0200">
+    <modelElementId id="_AmpRMPcpEeWnk-MlMuAN6w"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+    <eObjectToIdMap key="#//@operations.0/@modelElement">
+      <value id="_AmpRMPcpEeWnk-MlMuAN6w"/>
+    </eObjectToIdMap>
+  </operations>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:CreateDeleteOperation" identifier="_Amp4RPcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.092+0200">
+    <modelElementId id="_Amp4Q_cpEeWnk-MlMuAN6w"/>
+    <modelElement xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D"/>
+    <eObjectToIdMap key="#//@operations.1/@modelElement">
+      <value id="_Amp4Q_cpEeWnk-MlMuAN6w"/>
+    </eObjectToIdMap>
+  </operations>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiReferenceOperation" identifier="_AmqfUPcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.093+0200" featureName="refs" add="true">
+    <modelElementId id="_AgUmwPcpEeWnk-MlMuAN6w"/>
+    <referencedModelElements id="_AmpRMPcpEeWnk-MlMuAN6w"/>
+    <referencedModelElements id="_Amp4Q_cpEeWnk-MlMuAN6w"/>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-4.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-4.ucp
new file mode 100644
index 0000000..1ab8534
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-4.ucp
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+  <logMessage author="super" message="Setting attributes" clientDate="2016-03-31T12:12:01.387+0200"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation" identifier="_Ao1pkvcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.321+0200" featureName="att" newValue="ACED00057400026431">
+    <modelElementId id="_AgUmwPcpEeWnk-MlMuAN6w"/>
+  </operations>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation" identifier="_Ao1plvcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.321+0200" featureName="att" newValue="ACED00057400026432">
+    <modelElementId id="_Aj100PcpEeWnk-MlMuAN6w"/>
+  </operations>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation" identifier="_Ao1pmvcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.321+0200" featureName="att" newValue="ACED0005740003643331">
+    <modelElementId id="_AmpRMPcpEeWnk-MlMuAN6w"/>
+  </operations>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:AttributeOperation" identifier="_Ao1pnvcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.321+0200" featureName="att" newValue="ACED0005740003643332">
+    <modelElementId id="_Amp4Q_cpEeWnk-MlMuAN6w"/>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-5.ucp b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-5.ucp
new file mode 100644
index 0000000..54c2307
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/changepackage-5.ucp
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning.operations="http://eclipse.org/emf/emfstore/server/model/versioning/operations">
+  <logMessage author="super" message="Setting multi attributes" clientDate="2016-03-31T12:12:01.620+0200"/>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation" identifier="_ArHhgPcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.560+0200" featureName="atts" add="true">
+    <modelElementId id="_AmpRMPcpEeWnk-MlMuAN6w"/>
+    <indexes>0</indexes>
+    <indexes>1</indexes>
+    <referencedValues>ACED0005740003666F6F</referencedValues>
+    <referencedValues>ACED0005740003626172</referencedValues>
+  </operations>
+  <operations xsi:type="org.eclipse.emf.emfstore.internal.server.model.versioning.operations:MultiAttributeOperation" identifier="_ArHhhPcpEeWnk-MlMuAN6w" clientDate="2016-03-31T12:12:01.560+0200" featureName="atts" add="true">
+    <modelElementId id="_Amp4Q_cpEeWnk-MlMuAN6w"/>
+    <indexes>0</indexes>
+    <indexes>1</indexes>
+    <referencedValues>ACED0005740003464F4F</referencedValues>
+    <referencedValues>ACED0005740003424152</referencedValues>
+  </operations>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:ChangePackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectHistory.uph b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectHistory.uph
new file mode 100644
index 0000000..734594a
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectHistory.uph
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model:ProjectHistory xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model="http://eclipse.org/emf/emfstore/server/model" projectName="DemoProject" projectDescription="">
+  <projectId id="_AeXe8PcpEeWnk-MlMuAN6w"/>
+  <versions href="versions/0#/"/>
+  <versions href="versions/1#/"/>
+  <versions href="versions/2#/"/>
+  <versions href="versions/3#/"/>
+  <versions href="versions/4#/"/>
+  <versions href="versions/5#/"/>
+  <branches name="trunk">
+    <head identifier="5" projectStateChecksum="-4649578963142994355"/>
+    <source/>
+  </branches>
+</org.eclipse.emf.emfstore.internal.server.model:ProjectHistory>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-0.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-0.ups
new file mode 100644
index 0000000..ba602db
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-0.ups
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model"/>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-3.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-3.ups
new file mode 100644
index 0000000..2fcfb66
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-3.ups
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_AgUmwPcpEeWnk-MlMuAN6w" ref="#_Aj100PcpEeWnk-MlMuAN6w" refs="#_AmpRMPcpEeWnk-MlMuAN6w #_Amp4Q_cpEeWnk-MlMuAN6w"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_Aj100PcpEeWnk-MlMuAN6w"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_AmpRMPcpEeWnk-MlMuAN6w"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_Amp4Q_cpEeWnk-MlMuAN6w"/>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-4.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-4.ups
new file mode 100644
index 0000000..9c44065
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-4.ups
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_AgUmwPcpEeWnk-MlMuAN6w" att="d1" ref="#_Aj100PcpEeWnk-MlMuAN6w" refs="#_AmpRMPcpEeWnk-MlMuAN6w #_Amp4Q_cpEeWnk-MlMuAN6w"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_Aj100PcpEeWnk-MlMuAN6w" att="d2"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_AmpRMPcpEeWnk-MlMuAN6w" att="d31"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_Amp4Q_cpEeWnk-MlMuAN6w" att="d32"/>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-5.ups b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-5.ups
new file mode 100644
index 0000000..1324943
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/projectstate-5.ups
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.common.model:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.common.model="http://eclipse.org/emf/emfstore/common/model" xmlns:org.eclipse.emfstore.migration.edapt.test.d="http://eclipse.org/emf/emfstore/migration/edapt/test/d">
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_AgUmwPcpEeWnk-MlMuAN6w" att="d1" ref="#_Aj100PcpEeWnk-MlMuAN6w" refs="#_AmpRMPcpEeWnk-MlMuAN6w #_Amp4Q_cpEeWnk-MlMuAN6w"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_Aj100PcpEeWnk-MlMuAN6w" att="d2"/>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_AmpRMPcpEeWnk-MlMuAN6w" att="d31">
+    <atts>foo</atts>
+    <atts>bar</atts>
+  </modelElements>
+  <modelElements xsi:type="org.eclipse.emfstore.migration.edapt.test.d:D" xmi:id="_Amp4Q_cpEeWnk-MlMuAN6w" att="d32">
+    <atts>FOO</atts>
+    <atts>BAR</atts>
+  </modelElements>
+</org.eclipse.emf.emfstore.internal.common.model:Project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-0.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-0.upv
new file mode 100644
index 0000000..3429e9c
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-0.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="1#/">
+  <primarySpec/>
+  <logMessage author="super" message="Initial commit" date="2016-03-31T12:12:00.220+0200" clientDate="2016-03-31T12:12:00.148+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-1.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-1.upv
new file mode 100644
index 0000000..9473628
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-1.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="2#/" previousVersion="0#/">
+  <primarySpec identifier="1" projectStateChecksum="5463204580255642286"/>
+  <logMessage author="super" message="Added root Element" date="2016-03-31T12:12:00.762+0200" clientDate="2016-03-31T12:12:00.606+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-2.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-2.upv
new file mode 100644
index 0000000..b9cb2a4
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-2.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="3#/" previousVersion="1#/">
+  <primarySpec identifier="2" projectStateChecksum="-6783772369953510456"/>
+  <logMessage author="super" message="Added child Element" date="2016-03-31T12:12:01.067+0200" clientDate="2016-03-31T12:12:00.942+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-3.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-3.upv
new file mode 100644
index 0000000..882d254
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-3.upv
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="4#/" previousVersion="2#/">
+  <primarySpec identifier="3" projectStateChecksum="-2680983198499129763"/>
+  <tagSpecs name="foo"/>
+  <logMessage author="super" message="Added multiple child elements" date="2016-03-31T12:12:01.272+0200" clientDate="2016-03-31T12:12:01.170+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-4.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-4.upv
new file mode 100644
index 0000000..5ec9b9a
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-4.upv
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" nextVersion="5#/" previousVersion="3#/">
+  <primarySpec identifier="4" projectStateChecksum="3434614074021118099"/>
+  <tagSpecs name="bar"/>
+  <logMessage author="super" message="Setting attributes" date="2016-03-31T12:12:01.499+0200" clientDate="2016-03-31T12:12:01.387+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-5.upv b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-5.upv
new file mode 100644
index 0000000..b6064c2
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/project-_AeXe8PcpEeWnk-MlMuAN6w/version-5.upv
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model.versioning:Version xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.emf.emfstore.internal.server.model.versioning="http://eclipse.org/emf/emfstore/server/model/versioning" previousVersion="4#/">
+  <primarySpec identifier="5" projectStateChecksum="-4649578963142994355"/>
+  <logMessage author="super" message="Setting multi attributes" date="2016-03-31T12:12:01.716+0200" clientDate="2016-03-31T12:12:01.620+0200"/>
+</org.eclipse.emf.emfstore.internal.server.model.versioning:Version>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/storage.uss b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/storage.uss
new file mode 100644
index 0000000..0d1b2a1
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/imcp/default_dev/storage.uss
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.emfstore.internal.server.model:ServerSpace xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.eclipse.emf.emfstore.internal.server.model="http://eclipse.org/emf/emfstore/server/model" xmlns:org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles="http://eclipse.org/emf/emfstore/server/model/roles" projects="projects/_AeXe8PcpEeWnk-MlMuAN6w/projecthistory#/">
+  <users identifier="_ASSKwfcpEeWnk-MlMuAN6w" name="super" description="default server admin (superuser)" firstName="super" lastName="user">
+    <roles xsi:type="org.eclipse.emf.emfstore.internal.server.model.accesscontrol.roles:ServerAdmin"/>
+  </users>
+</org.eclipse.emf.emfstore.internal.server.model:ServerSpace>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/fragment.xml b/tests/org.eclipse.emf.emfstore.migration.edapt.test/fragment.xml
new file mode 100644
index 0000000..7e8da08
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/fragment.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<fragment>
+   <extension
+         point="org.eclipse.emf.edapt.migrators">
+      <migrator
+            path="model/a.history">
+      </migrator>
+   </extension>
+   <extension
+         point="org.eclipse.emf.edapt.migrators">
+      <migrator
+            path="model/b.history">
+      </migrator>
+   </extension>
+   <extension
+         point="org.eclipse.emf.edapt.migrators">
+      <migrator
+            path="model/d.history">
+      </migrator>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated a -->
+      <package
+            uri="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2"
+            class="org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage"
+            genModel="model/a.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated d -->
+      <package
+            uri="http://eclipse.org/emf/emfstore/migration/edapt/test/d/2"
+            class="org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage"
+            genModel="model/d.genmodel"/>
+   </extension>
+
+</fragment>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.ecore b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.ecore
new file mode 100644
index 0000000..9eb5a71
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.ecore
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="a" nsURI="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2"
+    nsPrefix="org.eclipse.emfstore.migration.edapt.test.a">
+  <eClassifiers xsi:type="ecore:EClass" name="AClazz"/>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.genmodel b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.genmodel
new file mode 100644
index 0000000..774f786
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.genmodel
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
+    copyrightText="Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA;EclipseSource Munich - initial API and implementation"
+    modelDirectory="/org.eclipse.emf.emfstore.migration.edapt.test/src" modelPluginID="org.eclipse.emf.emfstore.migration.edapt.test"
+    modelName="A" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+    operationReflection="true" importOrganizing="true">
+  <foreignModel>a.ecore</foreignModel>
+  <genPackages prefix="A" basePackage="org.eclipse.emf.emfstore.migration.edapt.test.model"
+      disposableProviderFactory="true" interfacePackageSuffix="model" metaDataPackageSuffix="model"
+      classPackageSuffix="model.impl" utilityPackageSuffix="model.util" providerPackageSuffix="model.provider"
+      presentationPackageSuffix="model.presentation" testsPackageSuffix="model.tests"
+      ecorePackage="a.ecore#/">
+    <genClasses ecoreClass="a.ecore#//A"/>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.history b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.history
new file mode 100644
index 0000000..e139802
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/a.history
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<history:History xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:history="http://www.eclipse.org/emf/edapt/history/0.3">
+  <releases date="2016-02-19T13:50:59.200+0100">
+    <changes xsi:type="history:CompositeChange">
+      <changes xsi:type="history:Create" element="a.ecore#/">
+        <changes xsi:type="history:Set" element="a.ecore#/" featureName="name" dataValue="a"/>
+        <changes xsi:type="history:Set" element="a.ecore#/" featureName="nsURI" dataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/a"/>
+        <changes xsi:type="history:Set" element="a.ecore#/" featureName="nsPrefix"
+            dataValue="org.eclipse.emfstore.migration.edapt.test.a"/>
+      </changes>
+      <changes xsi:type="history:Create" target="a.ecore#/" referenceName="eClassifiers"
+          element="a.ecore#//AClazz">
+        <changes xsi:type="history:Set" element="a.ecore#//AClazz" featureName="name"
+            dataValue="A"/>
+      </changes>
+    </changes>
+  </releases>
+  <releases date="2016-02-19T16:48:56.554+0100">
+    <changes xsi:type="history:OperationChange">
+      <changes xsi:type="history:Set" element="a.ecore#//AClazz" featureName="name"
+          dataValue="AClazz" oldDataValue="A"/>
+      <operation name="rename">
+        <parameters name="element">
+          <referenceValue element="a.ecore#//AClazz"/>
+        </parameters>
+        <parameters name="name">
+          <dataValue>AClazz</dataValue>
+        </parameters>
+      </operation>
+    </changes>
+    <changes xsi:type="history:Set" element="a.ecore#/" featureName="nsURI" dataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/a/2"
+        oldDataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/a"/>
+  </releases>
+  <releases/>
+</history:History>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/b.ecore b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/b.ecore
new file mode 100644
index 0000000..7604465
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/b.ecore
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="b" nsURI="http://eclipse.org/emf/emfstore/migration/edapt/test/b"
+    nsPrefix="org.eclipse.emfstore.migration.edapt.test.b">
+  <eClassifiers xsi:type="ecore:EClass" name="B"/>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/b.history b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/b.history
new file mode 100644
index 0000000..808f3ff
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/b.history
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<history:History xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:history="http://www.eclipse.org/emf/edapt/history/0.3">
+  <releases date="2016-02-19T13:51:15.363+0100">
+    <changes xsi:type="history:CompositeChange">
+      <changes xsi:type="history:Create" element="b.ecore#/">
+        <changes xsi:type="history:Set" element="b.ecore#/" featureName="name" dataValue="b"/>
+        <changes xsi:type="history:Set" element="b.ecore#/" featureName="nsURI" dataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/b"/>
+        <changes xsi:type="history:Set" element="b.ecore#/" featureName="nsPrefix"
+            dataValue="org.eclipse.emfstore.migration.edapt.test.b"/>
+      </changes>
+      <changes xsi:type="history:Create" target="b.ecore#/" referenceName="eClassifiers"
+          element="b.ecore#//B">
+        <changes xsi:type="history:Set" element="b.ecore#//B" featureName="name" dataValue="B"/>
+      </changes>
+    </changes>
+  </releases>
+  <releases date="2016-02-19T14:00:35.505+0100">
+    <changes xsi:type="history:CompositeChange">
+      <changes xsi:type="history:Create" element="c.ecore#/">
+        <changes xsi:type="history:Set" element="c.ecore#/" featureName="name" dataValue="c"/>
+        <changes xsi:type="history:Set" element="c.ecore#/" featureName="nsURI" dataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/c"/>
+        <changes xsi:type="history:Set" element="c.ecore#/" featureName="nsPrefix"
+            dataValue="org.eclipse.emfstore.migration.edapt.test.c"/>
+      </changes>
+      <changes xsi:type="history:Create" target="c.ecore#/" referenceName="eAnnotations"
+          element="c.ecore#//%http:%2F%2Fwww.eclipse.org%2Fedapt%">
+        <changes xsi:type="history:Set" element="c.ecore#//%http:%2F%2Fwww.eclipse.org%2Fedapt%"
+            featureName="source" dataValue="http://www.eclipse.org/edapt"/>
+      </changes>
+      <changes xsi:type="history:Create" target="c.ecore#//%http:%2F%2Fwww.eclipse.org%2Fedapt%"
+          referenceName="details" element="c.ecore#//%http:%2F%2Fwww.eclipse.org%2Fedapt%/@details.0">
+        <changes xsi:type="history:Set" element="c.ecore#//%http:%2F%2Fwww.eclipse.org%2Fedapt%/@details.0"
+            featureName="key" dataValue="historyURI"/>
+        <changes xsi:type="history:Set" element="c.ecore#//%http:%2F%2Fwww.eclipse.org%2Fedapt%/@details.0"
+            featureName="value" dataValue="b.history"/>
+      </changes>
+      <changes xsi:type="history:Create" target="c.ecore#/" referenceName="eClassifiers"
+          element="c.ecore#//C">
+        <changes xsi:type="history:Set" element="c.ecore#//C" featureName="name" dataValue="C"/>
+        <changes xsi:type="history:Add" element="c.ecore#//C" featureName="eSuperTypes"
+            referenceValue="b.ecore#//B"/>
+      </changes>
+    </changes>
+  </releases>
+  <releases/>
+</history:History>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/c.ecore b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/c.ecore
new file mode 100644
index 0000000..e82f031
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/c.ecore
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="c" nsURI="http://eclipse.org/emf/emfstore/migration/edapt/test/c"
+    nsPrefix="org.eclipse.emfstore.migration.edapt.test.c">
+  <eAnnotations source="http://www.eclipse.org/edapt">
+    <details key="historyURI" value="b.history"/>
+  </eAnnotations>
+  <eClassifiers xsi:type="ecore:EClass" name="C" eSuperTypes="b.ecore#//B"/>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.ecore b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.ecore
new file mode 100644
index 0000000..d129dd8
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.ecore
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="d" nsURI="http://eclipse.org/emf/emfstore/migration/edapt/test/d/2"
+    nsPrefix="org.eclipse.emfstore.migration.edapt.test.d">
+  <eClassifiers xsi:type="ecore:EClass" name="D">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="atts" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="refs" upperBound="-1" eType="#//D"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.genmodel b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.genmodel
new file mode 100644
index 0000000..11805b5
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.genmodel
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA;EclipseSource Munich - initial API and implementation"
+    modelDirectory="/org.eclipse.emf.emfstore.migration.edapt.test/src" modelPluginID="org.eclipse.emf.emfstore.migration.edapt.test"
+    modelName="D" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+    operationReflection="true" importOrganizing="true">
+  <foreignModel>model/d.ecore</foreignModel>
+  <genPackages prefix="D" basePackage="org.eclipse.emf.emfstore.migration.edapt.test.model"
+      disposableProviderFactory="true" interfacePackageSuffix="model" metaDataPackageSuffix="model"
+      classPackageSuffix="model.impl" utilityPackageSuffix="model.util" providerPackageSuffix="model.provider"
+      presentationPackageSuffix="model.presentation" testsPackageSuffix="model.tests"
+      ecorePackage="d.ecore#/">
+    <genClasses ecoreClass="d.ecore#//D">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute d.ecore#//D/att"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute d.ecore#//D/atts"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference d.ecore#//D/ref"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference d.ecore#//D/refs"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.history b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.history
new file mode 100644
index 0000000..24d7329
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/model/d.history
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<history:History xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:history="http://www.eclipse.org/emf/edapt/history/0.3">
+  <releases date="2016-03-31T14:02:04.794+0200">
+    <changes xsi:type="history:CompositeChange">
+      <changes xsi:type="history:Create" element="d.ecore#/">
+        <changes xsi:type="history:Set" element="d.ecore#/" featureName="name" dataValue="d"/>
+        <changes xsi:type="history:Set" element="d.ecore#/" featureName="nsURI" dataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/d"/>
+        <changes xsi:type="history:Set" element="d.ecore#/" featureName="nsPrefix"
+            dataValue="org.eclipse.emfstore.migration.edapt.test.d"/>
+      </changes>
+      <changes xsi:type="history:Create" target="d.ecore#/" referenceName="eClassifiers"
+          element="d.ecore#//D">
+        <changes xsi:type="history:Set" element="d.ecore#//D" featureName="name" dataValue="D"/>
+      </changes>
+      <changes xsi:type="history:Create" target="d.ecore#//D" referenceName="eStructuralFeatures"
+          element="d.ecore#//D/name">
+        <changes xsi:type="history:Set" element="d.ecore#//D/name" featureName="name"
+            dataValue="att"/>
+        <changes xsi:type="history:Set" element="d.ecore#//D/name" featureName="eType"
+            referenceValue="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </changes>
+      <changes xsi:type="history:Create" target="d.ecore#//D" referenceName="eStructuralFeatures"
+          element="d.ecore#//D/atts">
+        <changes xsi:type="history:Set" element="d.ecore#//D/atts" featureName="name"
+            dataValue="atts"/>
+        <changes xsi:type="history:Set" element="d.ecore#//D/atts" featureName="upperBound"
+            dataValue="-1" oldDataValue="1"/>
+        <changes xsi:type="history:Set" element="d.ecore#//D/atts" featureName="eType"
+            referenceValue="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+      </changes>
+      <changes xsi:type="history:Create" target="d.ecore#//D" referenceName="eStructuralFeatures"
+          element="#//@releases.1/@changes.0/@changes.0/@element">
+        <changes xsi:type="history:Set" element="#//@releases.1/@changes.0/@changes.0/@element"
+            featureName="name" dataValue="ref"/>
+        <changes xsi:type="history:Set" element="#//@releases.1/@changes.0/@changes.0/@element"
+            featureName="eType" referenceValue="d.ecore#//D"/>
+      </changes>
+      <changes xsi:type="history:Create" target="d.ecore#//D" referenceName="eStructuralFeatures"
+          element="#//@releases.1/@changes.0/@changes.1/@element">
+        <changes xsi:type="history:Set" element="#//@releases.1/@changes.0/@changes.1/@element"
+            featureName="name" dataValue="refs"/>
+        <changes xsi:type="history:Set" element="#//@releases.1/@changes.0/@changes.1/@element"
+            featureName="upperBound" dataValue="-1" oldDataValue="1"/>
+        <changes xsi:type="history:Set" element="#//@releases.1/@changes.0/@changes.1/@element"
+            featureName="eType" referenceValue="d.ecore#//D"/>
+      </changes>
+    </changes>
+  </releases>
+  <releases date="2016-03-31T14:04:11.362+0200">
+    <changes xsi:type="history:OperationChange">
+      <changes xsi:type="history:Delete" target="d.ecore#//D" referenceName="eStructuralFeatures">
+        <element xsi:type="ecore:EReference" name="ref" eType="ecore:EClass d.ecore#//D"
+            containment="true"/>
+      </changes>
+      <changes xsi:type="history:Delete" target="d.ecore#//D" referenceName="eStructuralFeatures">
+        <element xsi:type="ecore:EReference" name="refs" upperBound="-1" eType="ecore:EClass d.ecore#//D"
+            containment="true"/>
+      </changes>
+      <changes xsi:type="history:Create" target="d.ecore#//D" referenceName="eStructuralFeatures"
+          element="d.ecore#//D/refs">
+        <changes xsi:type="history:Set" element="d.ecore#//D/refs" featureName="name"
+            dataValue="refs"/>
+        <changes xsi:type="history:Set" element="d.ecore#//D/refs" featureName="upperBound"
+            dataValue="-1" oldDataValue="1"/>
+        <changes xsi:type="history:Set" element="d.ecore#//D/refs" featureName="containment"
+            dataValue="true" oldDataValue="false"/>
+        <changes xsi:type="history:Set" element="d.ecore#//D/refs" featureName="eType"
+            referenceValue="d.ecore#//D"/>
+      </changes>
+      <operation name="uniteReferences">
+        <parameters name="references">
+          <referenceValue element="#//@releases.1/@changes.0/@changes.0/@element"/>
+          <referenceValue element="#//@releases.1/@changes.0/@changes.1/@element"/>
+        </parameters>
+        <parameters name="unitedReferenceName">
+          <dataValue>refs</dataValue>
+        </parameters>
+      </operation>
+    </changes>
+    <changes xsi:type="history:OperationChange">
+      <changes xsi:type="history:Set" element="d.ecore#//D/name" featureName="name"
+          dataValue="name" oldDataValue="att"/>
+      <operation name="rename">
+        <parameters name="element">
+          <referenceValue element="d.ecore#//D/name"/>
+        </parameters>
+        <parameters name="name">
+          <dataValue>name</dataValue>
+        </parameters>
+      </operation>
+    </changes>
+    <changes xsi:type="history:Set" element="d.ecore#/" featureName="nsURI" dataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/d/2"
+        oldDataValue="http://eclipse.org/emf/emfstore/migration/edapt/test/d"/>
+  </releases>
+  <releases/>
+</history:History>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/plugin.properties b/tests/org.eclipse.emf.emfstore.migration.edapt.test/plugin.properties
new file mode 100644
index 0000000..593ce37
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = A Model
+providerName = www.example.org
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/pom.xml b/tests/org.eclipse.emf.emfstore.migration.edapt.test/pom.xml
new file mode 100644
index 0000000..09b6552
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/pom.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.eclipse.emf.emfstore</groupId>
+    <artifactId>emfstore-tests-parent</artifactId>
+    <version>1.8.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
+  </parent>
+
+  <groupId>org.eclipse.emf.emfstore</groupId>
+  <artifactId>org.eclipse.emf.emfstore.migration.edapt.test</artifactId>
+  <version>1.8.0-SNAPSHOT</version>
+  <packaging>eclipse-test-plugin</packaging>
+  
+  <build>
+        <plugins>
+            <plugin>
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>tycho-surefire-plugin</artifactId>
+                <version>${tycho-version}</version>
+
+                <goals>
+                    <goal>test</goal>
+                </goals>
+                <configuration>
+                    <testSuite>org.eclipse.emf.emfstore.migration.edapt.test</testSuite>
+                    <testClass>org.eclipse.emf.emfstore.internal.migration.edapt.test.AllMigrationEdaptTests</testClass>
+                    <useUIHarness>true</useUIHarness>
+                    <useUIThread>false</useUIThread>
+                    <argLine>${tycho.testArgLine} -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m
+                    </argLine>
+                    <testFailureIgnore>true</testFailureIgnore>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/EdaptMigratorTests.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/EdaptMigratorTests.java
new file mode 100644
index 0000000..065ca19
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/EdaptMigratorTests.java
@@ -0,0 +1,328 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.migration.edapt;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.apache.commons.io.IOUtils;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.edapt.migration.execution.Migrator;
+import org.eclipse.emf.edapt.spi.history.History;
+import org.eclipse.emf.edapt.spi.history.HistoryFactory;
+import org.eclipse.emf.edapt.spi.history.Release;
+import org.eclipse.emf.emfstore.common.ESSystemOutProgressMonitor;
+import org.eclipse.emf.emfstore.internal.migration.EMFStoreMigrationException;
+import org.junit.After;
+import org.junit.Test;
+
+public class EdaptMigratorTests {
+
+	private static final String CHANGEPACKAGE_1_UCP = "changepackage-1.ucp";
+	private static final String PROJECTSTATE_0_UPS = "projectstate-0.ups";
+	private static final String PROJECTSTATE_1_UPS = "projectstate-1.ups";
+	private static final String EXPECTED_XMI = "expected.xmi";
+
+	private static final String A_NSURI_REL_1 = "http://eclipse.org/emf/emfstore/migration/edapt/test/a";
+	private static final String B_NSURI_REL_1 = "http://eclipse.org/emf/emfstore/migration/edapt/test/b";
+	private static final String C_NSURI_REL_1 = "http://eclipse.org/emf/emfstore/migration/edapt/test/c";
+
+	private static Set<File> tempFiles = new LinkedHashSet<File>();
+
+	@After
+	public void cleanup() {
+		for (final File file : tempFiles) {
+			file.delete();
+		}
+		tempFiles.clear();
+	}
+
+	private static URI copyFileToTempDir(int testDir, String fileName) {
+		try {
+			final InputStream inputStream = getInputStream(testDir, fileName);
+			final File tempFile = File.createTempFile("emfstore", ".xmi");
+			tempFiles.add(tempFile);
+			tempFile.deleteOnExit();
+			final OutputStream outputStream = new FileOutputStream(tempFile);
+			final byte[] buf = new byte[1024];
+			int len;
+			while ((len = inputStream.read(buf)) > 0) {
+				outputStream.write(buf, 0, len);
+			}
+			outputStream.close();
+			inputStream.close();
+			return URI.createFileURI(tempFile.getAbsolutePath());
+		} catch (final FileNotFoundException ex) {
+		} catch (final IOException ex) {
+		}
+		fail();
+		return null;
+	}
+
+	private static InputStream getInputStream(int testDir, String fileName) {
+		try {
+			final URL url = new URL(MessageFormat
+				.format("platform:/plugin/org.eclipse.emf.emfstore.migration.edapt.test/data/{0}/{1}", testDir,
+					fileName));
+			final InputStream inputStream = url.openConnection().getInputStream();
+			return inputStream;
+		} catch (final MalformedURLException ex) {
+		} catch (final IOException ex) {
+		}
+		fail();
+		return null;
+	}
+
+	private static void assertStreamEqual(final URI uri, int testDir, String fileName) {
+		try {
+			final InputStream inputStream1 = getInputStream(testDir, fileName);
+			final FileInputStream inputStream2 = new FileInputStream(uri.toFileString());
+			assertTrue(IOUtils.contentEquals(inputStream1, inputStream2));
+			inputStream1.close();
+			inputStream2.close();
+		} catch (final FileNotFoundException ex) {
+			fail(ex.getMessage());
+		} catch (final IOException ex) {
+			fail(ex.getMessage());
+		}
+	}
+
+	@Test
+	public void testCanHandle() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI fileURI = URI.createFileURI("foo");
+		final URI nonFileURI = URI.createPlatformPluginURI("bar", false);
+		final LinkedHashSet<URI> urisToCheck = new LinkedHashSet<URI>(Arrays.asList(fileURI, nonFileURI));
+
+		/* act */
+		final Set<URI> result = edaptMigrator.canHandle(urisToCheck);
+
+		/* assert */
+		assertEquals(1, result.size());
+		assertSame(nonFileURI, result.iterator().next());
+	}
+
+	@Test
+	public void testGetMigratorWithNullMigrator() {
+		/* setup */
+		final LinkedHashSet<String> nameSpaceURIs = new LinkedHashSet<String>(
+			Arrays.asList(A_NSURI_REL_1, "foobar"));
+
+		/* act */
+		final Migrator migrator = EdaptMigrator.getMigrator(nameSpaceURIs);
+
+		/* assert */
+		assertNotNull(migrator);
+	}
+
+	@Test
+	public void testGetMigratorWithMultipleMigrators() {
+		/* setup */
+		final LinkedHashSet<String> nameSpaceURIs = new LinkedHashSet<String>(
+			Arrays.asList(A_NSURI_REL_1, B_NSURI_REL_1));
+
+		/* act */
+		final Migrator migrator = EdaptMigrator.getMigrator(nameSpaceURIs);
+
+		/* assert */
+		assertNull(migrator);
+	}
+
+	@Test
+	public void testGetMigratorWithMultipleURIsSameMigrators() {
+		/* setup */
+		final LinkedHashSet<String> nameSpaceURIs = new LinkedHashSet<String>(
+			Arrays.asList(B_NSURI_REL_1, C_NSURI_REL_1));
+
+		/* act */
+		final Migrator migrator = EdaptMigrator.getMigrator(nameSpaceURIs);
+
+		/* assert */
+		assertNotNull(migrator);
+	}
+
+	@Test
+	public void testGetNewestRelease() {
+		/* setup */
+		final History history = HistoryFactory.eINSTANCE.createHistory();
+		final Release release1 = HistoryFactory.eINSTANCE.createRelease();
+		final Release release2 = HistoryFactory.eINSTANCE.createRelease();
+		final Release release3 = HistoryFactory.eINSTANCE.createRelease();
+		final Release release4 = HistoryFactory.eINSTANCE.createRelease();
+		final Release release5 = HistoryFactory.eINSTANCE.createRelease();
+		history.getReleases().addAll(Arrays.asList(release1, release2, release3, release4, release5));
+
+		/* act */
+		final Release newestRelease = EdaptMigrator
+			.getNewestRelease(new LinkedHashSet<Release>(Arrays.asList(release3, release2, release4)));
+
+		/* assert */
+		assertSame(release4, newestRelease);
+	}
+
+	@Test
+	public void testNeedsMigrationRelease1ProjectState() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI uri = copyFileToTempDir(1, PROJECTSTATE_1_UPS);
+
+		/* act */
+		final Set<URI> result = edaptMigrator.needsMigration(Collections.singleton(uri));
+
+		/* assert */
+		assertEquals(1, result.size());
+		assertSame(uri, result.iterator().next());
+	}
+
+	@Test
+	public void testNeedsMigrationRelease1ChangePackage() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI uri = copyFileToTempDir(2, CHANGEPACKAGE_1_UCP);
+
+		/* act */
+		final Set<URI> result = edaptMigrator.needsMigration(Collections.singleton(uri));
+
+		/* assert */
+		assertEquals(1, result.size());
+		assertSame(uri, result.iterator().next());
+	}
+
+	@Test
+	public void testNeedsMigrationRelease2ProjectState() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI uri = copyFileToTempDir(3, PROJECTSTATE_1_UPS);
+
+		/* act */
+		final Set<URI> result = edaptMigrator.needsMigration(Collections.singleton(uri));
+
+		/* assert */
+		assertEquals(0, result.size());
+	}
+
+	@Test
+	public void testNeedsMigrationRelease2ChangePackage() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI uri = copyFileToTempDir(4, CHANGEPACKAGE_1_UCP);
+
+		/* act */
+		final Set<URI> result = edaptMigrator.needsMigration(Collections.singleton(uri));
+
+		/* assert */
+		assertEquals(0, result.size());
+	}
+
+	@Test
+	public void testNeedsMigrationMultipleURIsSameMigrator() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI uri1 = copyFileToTempDir(1, PROJECTSTATE_1_UPS);
+		final URI uri2 = copyFileToTempDir(1, PROJECTSTATE_1_UPS);
+		final URI uri3 = copyFileToTempDir(3, PROJECTSTATE_1_UPS);
+		final URI uri4 = copyFileToTempDir(3, PROJECTSTATE_1_UPS);
+
+		/* act */
+		final Set<URI> result = edaptMigrator
+			.needsMigration(new LinkedHashSet<URI>(Arrays.asList(uri1, uri2, uri3, uri4)));
+
+		/* assert */
+		assertEquals(2, result.size());
+		assertTrue(result.contains(uri1));
+		assertTrue(result.contains(uri2));
+	}
+
+	@Test
+	public void testNeedsMigrationNoMigrator() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI uri1 = copyFileToTempDir(5, PROJECTSTATE_0_UPS);
+
+		/* act */
+		final Set<URI> result = edaptMigrator.needsMigration(new LinkedHashSet<URI>(Arrays.asList(uri1)));
+
+		/* assert */
+		assertEquals(0, result.size());
+	}
+
+	@Test
+	public void testNeedsMigrationNoNSURIs() {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final URI uri1 = URI.createFileURI("foobar");
+
+		/* act */
+		final Set<URI> result = edaptMigrator.needsMigration(new LinkedHashSet<URI>(Arrays.asList(uri1)));
+
+		/* assert */
+		assertEquals(0, result.size());
+	}
+
+	@Test
+	public void testMigrateProjectState() throws EMFStoreMigrationException {
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final ESSystemOutProgressMonitor monitor = new ESSystemOutProgressMonitor();
+		final URI uri = copyFileToTempDir(1, PROJECTSTATE_1_UPS);
+
+		/* act */
+		edaptMigrator.migrate(Collections.singleton(uri), monitor);
+
+		/* assert */
+		assertStreamEqual(uri, 1, EXPECTED_XMI);
+	}
+
+	@Test
+	public void testMigrateChangePackage() throws EMFStoreMigrationException {
+		/* this test is nice-to-have only since it involves the changepackage migration */
+		/* setup */
+		final EdaptMigrator edaptMigrator = new EdaptMigrator();
+		final ESSystemOutProgressMonitor monitor = new ESSystemOutProgressMonitor();
+		final URI uri = copyFileToTempDir(2, CHANGEPACKAGE_1_UCP);
+
+		/* act */
+		edaptMigrator.migrate(Collections.singleton(uri), monitor);
+
+		/* assert */
+		// TODO id changes, but for change packages it is only important that they may be loaded again
+		/* assertStreamEqual(uri, 2, EXPECTED_XMI); */
+	}
+
+	// TODO
+	/* setup */
+
+	/* act */
+
+	/* assert */
+
+}
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/test/AllMigrationEdaptTests.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/test/AllMigrationEdaptTests.java
new file mode 100644
index 0000000..e087df7
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/test/AllMigrationEdaptTests.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.migration.edapt.test;
+
+import org.eclipse.emf.emfstore.internal.migration.edapt.EdaptMigratorTests;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+	EdaptMigratorTests.class,
+	MigrationManagerTest.class
+})
+public class AllMigrationEdaptTests {
+
+}
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/test/MigrationManagerTest.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/test/MigrationManagerTest.java
new file mode 100644
index 0000000..becee0a
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/internal/migration/edapt/test/MigrationManagerTest.java
@@ -0,0 +1,251 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.internal.migration.edapt.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.text.MessageFormat;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.emfstore.internal.common.model.util.ModelUtil;
+import org.eclipse.emf.emfstore.internal.server.exceptions.FatalESException;
+import org.eclipse.emf.emfstore.internal.server.model.ProjectHistory;
+import org.eclipse.emf.emfstore.internal.server.model.ServerSpace;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.AbstractChangePackage;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.FileBasedChangePackage;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.Version;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.impl.FileBasedChangePackageImpl;
+import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AbstractOperation;
+import org.eclipse.emf.emfstore.internal.server.startup.MigrationManager;
+import org.eclipse.emf.emfstore.internal.server.storage.ServerXMIResourceSetProvider;
+import org.eclipse.emf.emfstore.internal.server.storage.XMIServerURIConverter;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D;
+import org.eclipse.emf.emfstore.server.ESCloseableIterable;
+import org.eclipse.emf.emfstore.server.ESServerURIUtil;
+import org.junit.After;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class MigrationManagerTest {
+
+	private static Set<File> tempFiles = new LinkedHashSet<File>();
+
+	@After
+	public void cleanup() throws IOException {
+		for (final File file : tempFiles) {
+			if (file.isDirectory()) {
+				org.eclipse.emf.emfstore.internal.common.model.util.FileUtil.deleteDirectory(file, true);
+			} else {
+				file.delete();
+			}
+		}
+		tempFiles.clear();
+	}
+
+	private static String copyServerToTempDir(boolean inMemory) {
+		try {
+			final long currentTimeMillis = System.currentTimeMillis();
+			final String path = System.getProperty("java.io.tmpdir");
+			final File dir = new File(path + "/esMigration" + currentTimeMillis);
+			dir.mkdirs();
+			tempFiles.add(dir);
+
+			final File source = getInputStream(inMemory);
+			final File destination = new File(dir, "default_dev");
+
+			org.eclipse.emf.emfstore.internal.common.model.util.FileUtil.copyDirectory(source, destination);
+
+			return destination.getAbsolutePath() + "/";
+		} catch (final FileNotFoundException ex) {
+		} catch (final IOException ex) {
+		}
+		fail();
+		return null;
+	}
+
+	private static File getInputStream(boolean inMemory) {
+		try {
+			final URL url = new URL(MessageFormat
+				.format(
+					"platform:/plugin/org.eclipse.emf.emfstore.migration.edapt.test/data/fullServer/{0}/default_dev",
+					inMemory ? "imcp" : "fbcp"));
+			final java.net.URI uri = FileLocator.resolve(url).toURI();
+			return new File(uri);
+		} catch (final MalformedURLException ex) {
+		} catch (final IOException ex) {
+		} catch (final URISyntaxException ex) {
+		}
+		fail();
+		return null;
+	}
+
+	private static ResourceSet createResourceSet(final String serverHome) {
+		final ResourceSet resourceSet = new ServerXMIResourceSetProvider().getResourceSet();
+		resourceSet.setURIConverter(new XMIServerURIConverter() {
+			@Override
+			protected String getServerHome() {
+				return serverHome;
+			}
+		});
+		return resourceSet;
+	}
+
+	private static ServerSpace loadServerSpace(final String serverHome) {
+		final ResourceSet resourceSet = createResourceSet(serverHome);
+		final URI serverSpaceURI = ESServerURIUtil.createServerSpaceURI();
+		final Resource resource = resourceSet.createResource(serverSpaceURI);
+		try {
+			resource.load(null);
+		} catch (final IOException ex) {
+			ModelUtil.logException(ex);
+			return null;
+		}
+		final ServerSpace serverSpace = (ServerSpace) resource.getContents().get(0);
+		return serverSpace;
+	}
+
+	private static void assertServerspace(ServerSpace serverSpace) {
+		/* 1 project */
+		assertEquals(1, serverSpace.getProjects().size());
+		final ProjectHistory projectHistory = serverSpace.getProjects().get(0);
+
+		{/* version 1: empty project */
+			final Version version = projectHistory.getVersions().get(0);
+			assertNull(version.getChanges());
+			assertNotNull(version.getProjectState());
+			assertEquals(0, version.getProjectState().getModelElements().size());
+		}
+
+		{/* version 2: Add root element */
+			final Version version = projectHistory.getVersions().get(1);
+			assertNotNull(version.getChanges());
+			assertOperationCount(version, 1);
+			assertNull(version.getProjectState());
+		}
+
+		{/* version 3: Added single ref in original version */
+			final Version version = projectHistory.getVersions().get(2);
+			assertNotNull(version.getChanges());
+			assertOperationCount(version, 2);
+			assertNull(version.getProjectState());
+		}
+
+		{/* version 4: Added two refs in original version */
+			final Version version = projectHistory.getVersions().get(3);
+			assertNotNull(version.getChanges());
+			assertOperationCount(version, 3);
+			assertNotNull(version.getProjectState());
+			assertEquals(4, version.getProjectState().getModelElements().size());
+			final D d1 = (D) version.getProjectState().getModelElements().get(0);
+			final D d2 = (D) version.getProjectState().getModelElements().get(1);
+			final D d31 = (D) version.getProjectState().getModelElements().get(2);
+			final D d32 = (D) version.getProjectState().getModelElements().get(3);
+			assertEquals(3, d1.getRefs().size());
+			assertEquals(0, d1.getRefs().indexOf(d2));
+			assertEquals(1, d1.getRefs().indexOf(d31));
+			assertEquals(2, d1.getRefs().indexOf(d32));
+		}
+
+		{/* version 5: Set single att */
+			final Version version = projectHistory.getVersions().get(4);
+			assertNotNull(version.getChanges());
+			assertOperationCount(version, 4);
+			assertNotNull(version.getProjectState());
+			assertEquals(4, version.getProjectState().getModelElements().size());
+			final D d1 = (D) version.getProjectState().getModelElements().get(0);
+			final D d2 = (D) version.getProjectState().getModelElements().get(1);
+			final D d31 = (D) version.getProjectState().getModelElements().get(2);
+			final D d32 = (D) version.getProjectState().getModelElements().get(3);
+			assertEquals("d1", d1.getName());
+			assertEquals("d2", d2.getName());
+			assertEquals("d31", d31.getName());
+			assertEquals("d32", d32.getName());
+		}
+
+		{/* version 6: Multi att */
+			final Version version = projectHistory.getVersions().get(5);
+			assertNotNull(version.getChanges());
+			assertOperationCount(version, 2);
+			assertNotNull(version.getProjectState());
+			assertEquals(4, version.getProjectState().getModelElements().size());
+			final D d31 = (D) version.getProjectState().getModelElements().get(2);
+			final D d32 = (D) version.getProjectState().getModelElements().get(3);
+			assertEquals(2, d31.getAtts().size());
+			assertEquals(2, d32.getAtts().size());
+		}
+	}
+
+	private static void assertOperationCount(final Version version, final int expected) {
+		final ESCloseableIterable<AbstractOperation> operations = version.getChanges().operations();
+		final Iterator<AbstractOperation> iterator = operations.iterable().iterator();
+		int count = 0;
+		while (iterator.hasNext()) {
+			iterator.next();
+			count++;
+		}
+		operations.close();
+		assertEquals(expected, count);
+	}
+
+	private static void fixFilePaths(ServerSpace serverSpace) {
+		for (final Version version : serverSpace.getProjects().get(0).getVersions()) {
+			final AbstractChangePackage changes = version.getChanges();
+			if (!FileBasedChangePackage.class.isInstance(changes)) {
+				continue;
+			}
+			final FileBasedChangePackage fileBasedChangePackage = FileBasedChangePackage.class.cast(changes);
+			final URI fileURI = serverSpace.eResource().getResourceSet().getURIConverter()
+				.normalize(fileBasedChangePackage.eResource().getURI());
+			fileBasedChangePackage.setFilePath(fileURI.toFileString() + FileBasedChangePackageImpl.FILE_OP_INDEX);
+		}
+	}
+
+	@Test
+	public void testServerWithInMemoryChangePackage() throws FatalESException {
+		/* setup */
+		final String serverHome = copyServerToTempDir(true);
+		final ResourceSet resourceSet = createResourceSet(serverHome);
+		/* act */
+		MigrationManager.migrate(resourceSet, true);
+		/* assert */
+		assertServerspace(loadServerSpace(serverHome));
+	}
+
+	@Test
+	public void testServerWithFileBasedChangePackage() throws FatalESException {
+		/* setup */
+		final String serverHome = copyServerToTempDir(false);
+		final ResourceSet resourceSet = createResourceSet(serverHome);
+		/* act */
+		MigrationManager.migrate(resourceSet, false);
+		/* assert */
+		final ServerSpace serverSpace = loadServerSpace(serverHome);
+		fixFilePaths(serverSpace);
+		assertServerspace(serverSpace);
+	}
+
+}
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/AClazz.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/AClazz.java
new file mode 100644
index 0000000..16b8167
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/AClazz.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Clazz</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage#getAClazz()
+ * @model
+ * @generated
+ */
+public interface AClazz extends EObject {
+} // AClazz
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/AFactory.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/AFactory.java
new file mode 100644
index 0000000..18d7c6f
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/AFactory.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage
+ * @generated
+ */
+public interface AFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	AFactory eINSTANCE = org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.AFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Clazz</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Clazz</em>'.
+	 * @generated
+	 */
+	AClazz createAClazz();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	APackage getAPackage();
+
+} // AFactory
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/APackage.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/APackage.java
new file mode 100644
index 0000000..2e50f52
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/APackage.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface APackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNAME = "a";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_URI = "http://eclipse.org/emf/emfstore/migration/edapt/test/a/2";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_PREFIX = "org.eclipse.emfstore.migration.edapt.test.a";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	APackage eINSTANCE = org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.APackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.AClazzImpl
+	 * <em>Clazz</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.AClazzImpl
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.APackageImpl#getAClazz()
+	 * @generated
+	 */
+	int ACLAZZ = 0;
+
+	/**
+	 * The number of structural features of the '<em>Clazz</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ACLAZZ_FEATURE_COUNT = 0;
+
+	/**
+	 * The number of operations of the '<em>Clazz</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int ACLAZZ_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz
+	 * <em>Clazz</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Clazz</em>'.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz
+	 * @generated
+	 */
+	EClass getAClazz();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	AFactory getAFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each operation of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.AClazzImpl <em>Clazz</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.AClazzImpl
+		 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl.APackageImpl#getAClazz()
+		 * @generated
+		 */
+		EClass ACLAZZ = eINSTANCE.getAClazz();
+
+	}
+
+} // APackage
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/AClazzImpl.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/AClazzImpl.java
new file mode 100644
index 0000000..a21e53f
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/AClazzImpl.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Clazz</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AClazzImpl extends MinimalEObjectImpl.Container implements AClazz {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected AClazzImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return APackage.Literals.ACLAZZ;
+	}
+
+} // AClazzImpl
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/AFactoryImpl.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/AFactoryImpl.java
new file mode 100644
index 0000000..e03993d
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/AFactoryImpl.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AFactory;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AFactoryImpl extends EFactoryImpl implements AFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static AFactory init() {
+		try {
+			final AFactory theAFactory = (AFactory) EPackage.Registry.INSTANCE.getEFactory(APackage.eNS_URI);
+			if (theAFactory != null) {
+				return theAFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new AFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case APackage.ACLAZZ:
+			return createAClazz();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AClazz createAClazz() {
+		final AClazzImpl aClazz = new AClazzImpl();
+		return aClazz;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public APackage getAPackage() {
+		return (APackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static APackage getPackage() {
+		return APackage.eINSTANCE;
+	}
+
+} // AFactoryImpl
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/APackageImpl.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/APackageImpl.java
new file mode 100644
index 0000000..c6c18ff
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/impl/APackageImpl.java
@@ -0,0 +1,191 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AFactory;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class APackageImpl extends EPackageImpl implements APackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass aClazzEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private APackageImpl() {
+		super(eNS_URI, AFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link APackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static APackage init() {
+		if (isInited) {
+			return (APackage) EPackage.Registry.INSTANCE.getEPackage(APackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final APackageImpl theAPackage = (APackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof APackageImpl
+			? EPackage.Registry.INSTANCE.get(eNS_URI) : new APackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theAPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theAPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theAPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(APackage.eNS_URI, theAPackage);
+		return theAPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EClass getAClazz() {
+		return aClazzEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AFactory getAFactory() {
+		return (AFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		aClazzEClass = createEClass(ACLAZZ);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(aClazzEClass, AClazz.class, "AClazz", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // APackageImpl
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/util/AAdapterFactory.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/util/AAdapterFactory.java
new file mode 100644
index 0000000..5dcd75d
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/util/AAdapterFactory.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage
+ * @generated
+ */
+public class AAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static APackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public AAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = APackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance
+	 * object of the model.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected ASwitch<Adapter> modelSwitch = new ASwitch<Adapter>() {
+		@Override
+		public Adapter caseAClazz(AClazz object) {
+			return createAClazzAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz <em>Clazz</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz
+	 * @generated
+	 */
+	public Adapter createAClazzAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} // AAdapterFactory
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/util/ASwitch.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/util/ASwitch.java
new file mode 100644
index 0000000..55221c3
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/a/model/util/ASwitch.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.AClazz;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.a.model.APackage
+ * @generated
+ */
+public class ASwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static APackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public ASwitch() {
+		if (modelPackage == null) {
+			modelPackage = APackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
+	 * result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case APackage.ACLAZZ: {
+			final AClazz aClazz = (AClazz) theEObject;
+			T result = caseAClazz(aClazz);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Clazz</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Clazz</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAClazz(AClazz object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // ASwitch
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/D.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/D.java
new file mode 100644
index 0000000..ab93397
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/D.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>D</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getAtts <em>Atts</em>}</li>
+ * <li>{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getRefs <em>Refs</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage#getD()
+ * @model
+ * @generated
+ */
+public interface D extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage#getD_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getName <em>Name</em>
+	 * }' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Atts</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Atts</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Atts</em>' attribute list.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage#getD_Atts()
+	 * @model
+	 * @generated
+	 */
+	EList<String> getAtts();
+
+	/**
+	 * Returns the value of the '<em><b>Refs</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Refs</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Refs</em>' reference list.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage#getD_Refs()
+	 * @model
+	 * @generated
+	 */
+	EList<D> getRefs();
+
+} // D
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/DFactory.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/DFactory.java
new file mode 100644
index 0000000..01008f1
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/DFactory.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage
+ * @generated
+ */
+public interface DFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	DFactory eINSTANCE = org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>D</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>D</em>'.
+	 * @generated
+	 */
+	D createD();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	DPackage getDPackage();
+
+} // DFactory
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/DPackage.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/DPackage.java
new file mode 100644
index 0000000..cb32c72
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/DPackage.java
@@ -0,0 +1,252 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNAME = "d";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_URI = "http://eclipse.org/emf/emfstore/migration/edapt/test/d/2";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_PREFIX = "org.eclipse.emfstore.migration.edapt.test.d";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	DPackage eINSTANCE = org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DImpl
+	 * <em>D</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DImpl
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DPackageImpl#getD()
+	 * @generated
+	 */
+	int D = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Atts</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D__ATTS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Refs</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D__REFS = 2;
+
+	/**
+	 * The number of structural features of the '<em>D</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>D</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int D_OPERATION_COUNT = 0;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D
+	 * <em>D</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>D</em>'.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D
+	 * @generated
+	 */
+	EClass getD();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getName()
+	 * @see #getD()
+	 * @generated
+	 */
+	EAttribute getD_Name();
+
+	/**
+	 * Returns the meta object for the attribute list '
+	 * {@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getAtts <em>Atts</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute list '<em>Atts</em>'.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getAtts()
+	 * @see #getD()
+	 * @generated
+	 */
+	EAttribute getD_Atts();
+
+	/**
+	 * Returns the meta object for the reference list '
+	 * {@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getRefs <em>Refs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference list '<em>Refs</em>'.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D#getRefs()
+	 * @see #getD()
+	 * @generated
+	 */
+	EReference getD_Refs();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	DFactory getDFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each operation of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DImpl <em>D</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DImpl
+		 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DPackageImpl#getD()
+		 * @generated
+		 */
+		EClass D = eINSTANCE.getD();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute D__NAME = eINSTANCE.getD_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Atts</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute D__ATTS = eINSTANCE.getD_Atts();
+
+		/**
+		 * The meta object literal for the '<em><b>Refs</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference D__REFS = eINSTANCE.getD_Refs();
+
+	}
+
+} // DPackage
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DFactoryImpl.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DFactoryImpl.java
new file mode 100644
index 0000000..9a9c86b
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DFactoryImpl.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DFactory;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DFactoryImpl extends EFactoryImpl implements DFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static DFactory init() {
+		try {
+			final DFactory theDFactory = (DFactory) EPackage.Registry.INSTANCE.getEFactory(DPackage.eNS_URI);
+			if (theDFactory != null) {
+				return theDFactory;
+			}
+		} catch (final Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new DFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public DFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case DPackage.D:
+			return createD();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public D createD() {
+		final DImpl d = new DImpl();
+		return d;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public DPackage getDPackage() {
+		return (DPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static DPackage getPackage() {
+		return DPackage.eINSTANCE;
+	}
+
+} // DFactoryImpl
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DImpl.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DImpl.java
new file mode 100644
index 0000000..23f9213
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DImpl.java
@@ -0,0 +1,263 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>D</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DImpl#getAtts <em>Atts</em>}</li>
+ * <li>{@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl.DImpl#getRefs <em>Refs</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DImpl extends MinimalEObjectImpl.Container implements D {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getAtts() <em>Atts</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getAtts()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> atts;
+
+	/**
+	 * The cached value of the '{@link #getRefs() <em>Refs</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getRefs()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<D> refs;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected DImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return DPackage.Literals.D;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void setName(String newName) {
+		final String oldName = name;
+		name = newName;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, DPackage.D__NAME, oldName, name));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EList<String> getAtts() {
+		if (atts == null) {
+			atts = new EDataTypeUniqueEList<String>(String.class, this, DPackage.D__ATTS);
+		}
+		return atts;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EList<D> getRefs() {
+		if (refs == null) {
+			refs = new EObjectResolvingEList<D>(D.class, this, DPackage.D__REFS);
+		}
+		return refs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case DPackage.D__NAME:
+			return getName();
+		case DPackage.D__ATTS:
+			return getAtts();
+		case DPackage.D__REFS:
+			return getRefs();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case DPackage.D__NAME:
+			setName((String) newValue);
+			return;
+		case DPackage.D__ATTS:
+			getAtts().clear();
+			getAtts().addAll((Collection<? extends String>) newValue);
+			return;
+		case DPackage.D__REFS:
+			getRefs().clear();
+			getRefs().addAll((Collection<? extends D>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case DPackage.D__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case DPackage.D__ATTS:
+			getAtts().clear();
+			return;
+		case DPackage.D__REFS:
+			getRefs().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case DPackage.D__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case DPackage.D__ATTS:
+			return atts != null && !atts.isEmpty();
+		case DPackage.D__REFS:
+			return refs != null && !refs.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		final StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(", atts: ");
+		result.append(atts);
+		result.append(')');
+		return result.toString();
+	}
+
+} // DImpl
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DPackageImpl.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DPackageImpl.java
new file mode 100644
index 0000000..5d94084
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/impl/DPackageImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DFactory;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DPackageImpl extends EPackageImpl implements DPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass dEClass = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private DPackageImpl() {
+		super(eNS_URI, DFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link DPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static DPackage init() {
+		if (isInited) {
+			return (DPackage) EPackage.Registry.INSTANCE.getEPackage(DPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		final DPackageImpl theDPackage = (DPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DPackageImpl
+			? EPackage.Registry.INSTANCE.get(eNS_URI) : new DPackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theDPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theDPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theDPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(DPackage.eNS_URI, theDPackage);
+		return theDPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EClass getD() {
+		return dEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EAttribute getD_Name() {
+		return (EAttribute) dEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EAttribute getD_Atts() {
+		return (EAttribute) dEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public EReference getD_Refs() {
+		return (EReference) dEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public DFactory getDFactory() {
+		return (DFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		dEClass = createEClass(D);
+		createEAttribute(dEClass, D__NAME);
+		createEAttribute(dEClass, D__ATTS);
+		createEReference(dEClass, D__REFS);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(dEClass, org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D.class, "D", !IS_ABSTRACT,
+			!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getD_Name(), ecorePackage.getEString(), "name", null, 0, 1,
+			org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D.class, !IS_TRANSIENT, !IS_VOLATILE,
+			IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getD_Atts(), ecorePackage.getEString(), "atts", null, 0, -1,
+			org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D.class, !IS_TRANSIENT, !IS_VOLATILE,
+			IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getD_Refs(), getD(), null, "refs", null, 0, -1,
+			org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D.class, !IS_TRANSIENT, !IS_VOLATILE,
+			IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // DPackageImpl
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/util/DAdapterFactory.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/util/DAdapterFactory.java
new file mode 100644
index 0000000..77d13c4
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/util/DAdapterFactory.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage
+ * @generated
+ */
+public class DAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static DPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public DAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = DPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance
+	 * object of the model.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected DSwitch<Adapter> modelSwitch = new DSwitch<Adapter>() {
+		@Override
+		public Adapter caseD(D object) {
+			return createDAdapter();
+		}
+
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D <em>D</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D
+	 * @generated
+	 */
+	public Adapter createDAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} // DAdapterFactory
diff --git a/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/util/DSwitch.java b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/util/DSwitch.java
new file mode 100644
index 0000000..cf29c23
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.migration.edapt.test/src/org/eclipse/emf/emfstore/migration/edapt/test/model/d/model/util/DSwitch.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource Munich - initial API and implementation
+ */
+package org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.D;
+import org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.emfstore.migration.edapt.test.model.d.model.DPackage
+ * @generated
+ */
+public class DSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static DPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public DSwitch() {
+		if (modelPackage == null) {
+			modelPackage = DPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that
+	 * result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case DPackage.D: {
+			final D d = (D) theEObject;
+			T result = caseD(d);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>D</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>D</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseD(D object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // DSwitch
diff --git a/tests/org.eclipse.emf.emfstore.performance.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.performance.test/META-INF/MANIFEST.MF
index 0d2b4b5..b249eff 100644
--- a/tests/org.eclipse.emf.emfstore.performance.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.performance.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Performance Tests
 Bundle-SymbolicName: org.eclipse.emf.emfstore.performance.test
-Bundle-Version: 1.7.0.qualifier
+Bundle-Version: 1.8.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.emfstore.modelmutator,
  org.eclipse.emf.emfstore.server,
diff --git a/tests/org.eclipse.emf.emfstore.performance.test/pom.xml b/tests/org.eclipse.emf.emfstore.performance.test/pom.xml
index a118e47..636cfc3 100644
--- a/tests/org.eclipse.emf.emfstore.performance.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.performance.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-tests-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
 	</parent>
 
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>org.eclipse.emf.emfstore.performance.test</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.emfstore.server.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.server.test/META-INF/MANIFEST.MF
index 02e9a1c..17ae563 100644
--- a/tests/org.eclipse.emf.emfstore.server.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.server.test/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFStore Server Tests
 Bundle-SymbolicName: org.eclipse.emf.emfstore.server.test
-Bundle-Version: 1.7.0.qualifier
-Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.7.0"
+Bundle-Version: 1.8.0.qualifier
+Fragment-Host: org.eclipse.emf.emfstore.client;bundle-version="1.8.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.emfstore.test.common;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.emf.emfstore.server;bundle-version="[1.7.0,2.0.0)"
+ org.eclipse.emf.emfstore.server;bundle-version="[1.8.0,2.0.0)"
 Export-Package: org.eclipse.emf.emfstore.server.accesscontrol.test;ver
- sion="1.7.0";x-internal:=true,org.eclipse.emf.emfstore.server.test;ve
- rsion="1.7.0";x-internal:=true
+ sion="1.8.0";x-internal:=true,org.eclipse.emf.emfstore.server.test;ve
+ rsion="1.8.0";x-internal:=true
 Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/org.eclipse.emf.emfstore.server.test/pom.xml b/tests/org.eclipse.emf.emfstore.server.test/pom.xml
index 5157d88..31f2173 100644
--- a/tests/org.eclipse.emf.emfstore.server.test/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.server.test/pom.xml
@@ -7,13 +7,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.emfstore</groupId>
 		<artifactId>emfstore-tests-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
+		<version>1.8.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
 	</parent>
 
 	<groupId>org.eclipse.emf.emfstore</groupId>
 	<artifactId>org.eclipse.emf.emfstore.server.test</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/accesscontrol/test/AllAccessControlTests.java b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/accesscontrol/test/AllAccessControlTests.java
index 42927d3..12ad3cf 100644
--- a/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/accesscontrol/test/AllAccessControlTests.java
+++ b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/accesscontrol/test/AllAccessControlTests.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
  * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
- * 
+ *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  * Edgar Mueller - initial API and implementation
  ******************************************************************************/
@@ -16,9 +16,9 @@
 
 /**
  * Suite for all access control tests.
- * 
+ *
  * @author emueller
- * 
+ *
  */
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
@@ -40,7 +40,8 @@
 	CreateUserWithPasswordTests.class,
 	CreateUserWithPasswordMissingPrivilegTests.class,
 	AdminEMFStoreTests.class,
-	AddInitialParticipantTest.class
+	AddInitialParticipantTest.class,
+	AutoCreateACUserTestTest.class
 
 })
 public class AllAccessControlTests {
diff --git a/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/accesscontrol/test/AutoCreateACUserTestTest.java b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/accesscontrol/test/AutoCreateACUserTestTest.java
new file mode 100644
index 0000000..d8a5a64
--- /dev/null
+++ b/tests/org.eclipse.emf.emfstore.server.test/src/org/eclipse/emf/emfstore/server/accesscontrol/test/AutoCreateACUserTestTest.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.emfstore.server.accesscontrol.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.emf.emfstore.client.test.common.cases.ESTestWithLoggedInUserMock;
+import org.eclipse.emf.emfstore.client.test.common.util.ServerUtil;
+import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
+import org.eclipse.emf.emfstore.internal.server.model.accesscontrol.ACUser;
+import org.eclipse.emf.emfstore.server.exceptions.ESException;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class AutoCreateACUserTestTest extends ESTestWithLoggedInUserMock {
+
+	private static final String NOT_EXISTING_USER_NAME = "FOO_USER"; //$NON-NLS-1$
+
+	private static void startEMFStoreWithAutoCreateProperty() {
+		final Map<String, String> properties = new LinkedHashMap<String, String>();
+		properties.put(ServerConfiguration.AUTHENTICATION_CREATE_AUTHENTICATED_USERS, Boolean.TRUE.toString());
+		startEMFStore(properties);
+	}
+
+	@BeforeClass
+	public static void beforeClass() {
+		startEMFStoreWithAutoCreateProperty();
+	}
+
+	@Test
+	public void testAutoCreateACUser() throws ESException {
+		/* act */
+		getServer().login(NOT_EXISTING_USER_NAME, ""); //$NON-NLS-1$
+		/* assert */
+		final ACUser user = ServerUtil.getUser(getUsersession(), NOT_EXISTING_USER_NAME);
+		assertNotNull(user);
+		assertEquals(NOT_EXISTING_USER_NAME, user.getName());
+	}
+}
diff --git a/tests/org.eclipse.emf.emfstore.test.common/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.emfstore.test.common/META-INF/MANIFEST.MF
index 36d3563..cbaa868 100644
--- a/tests/org.eclipse.emf.emfstore.test.common/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.emfstore.test.common/META-INF/MANIFEST.MF
@@ -6,9 +6,9 @@
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Require-Bundle: org.eclipse.emf.emfstore.test.model;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.client;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.junit;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
- org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.7.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.8.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.emfstore.test.model.edit;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
  org.eclipse.core.resources;bundle-version="[3.8.1,4.0.0)"
 Export-Package: org.eclipse.emf.emfstore.client.test.common;version="2.0.0";x-friends:="org.eclipse.emf.emfstore.client.api.test",
diff --git a/tests/org.eclipse.emf.emfstore.test.common/pom.xml b/tests/org.eclipse.emf.emfstore.test.common/pom.xml
index e88b746..e46a8b9 100644
--- a/tests/org.eclipse.emf.emfstore.test.common/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.test.common/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
diff --git a/tests/org.eclipse.emf.emfstore.test.model.edit/pom.xml b/tests/org.eclipse.emf.emfstore.test.model.edit/pom.xml
index fde8de0..45e7089 100644
--- a/tests/org.eclipse.emf.emfstore.test.model.edit/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.test.model.edit/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
diff --git a/tests/org.eclipse.emf.emfstore.test.model/pom.xml b/tests/org.eclipse.emf.emfstore.test.model/pom.xml
index 15e8d25..3eeb069 100644
--- a/tests/org.eclipse.emf.emfstore.test.model/pom.xml
+++ b/tests/org.eclipse.emf.emfstore.test.model/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.emf.emfstore</groupId>
     <artifactId>emfstore-tests-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.emfstore.releng.tests</relativePath>
   </parent>
 
