diff --git a/builds/org.eclipse.emf.edapt.releng.p2/pom.xml b/builds/org.eclipse.emf.edapt.releng.p2/pom.xml
index db7dfd7..222d99f 100644
--- a/builds/org.eclipse.emf.edapt.releng.p2/pom.xml
+++ b/builds/org.eclipse.emf.edapt.releng.p2/pom.xml
@@ -3,7 +3,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>root</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
      <relativePath>../org.eclipse.emf.edapt.releng</relativePath>  
   </parent>
   <groupId>org.eclipse.emf.edapt.releng.p2</groupId>
diff --git a/builds/org.eclipse.emf.edapt.releng.target/.project b/builds/org.eclipse.emf.edapt.releng.target/.project
index f5d4440..69f0c89 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/.project
+++ b/builds/org.eclipse.emf.edapt.releng.target/.project
@@ -6,6 +6,11 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
 			</arguments>
@@ -19,5 +24,6 @@
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
 	</natures>
 </projectDescription>
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt.target b/builds/org.eclipse.emf.edapt.releng.target/edapt.target
index a7d26c6..f07e64f 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt.target
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
-<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="Edapt Target" sequenceNumber="1502350970">
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="Edapt Target" sequenceNumber="1564387580">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="2.1.2.201310031412"/>
@@ -26,10 +26,10 @@
       <repository location="http://download.eclipse.org/eclipse/updates/4.3"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.ocl.master.feature.group" version="4.0.1.v20120919-0602"/>
-      <unit id="org.eclipse.ocl.all.sdk.feature.group" version="4.0.1.v20120919-0602"/>
-      <unit id="org.eclipse.ocl.examples.feature.group" version="3.2.1.v20120919-0602"/>
-      <repository location="http://download.eclipse.org/modeling/mdt/ocl/updates/releases/4.0.1"/>
+      <unit id="org.eclipse.ocl.master.feature.group" version="6.3.0.v20170613-1432"/>
+      <unit id="org.eclipse.ocl.all.sdk.feature.group" version="5.3.0.v20170607-1133"/>
+      <unit id="org.eclipse.ocl.examples.feature.group" version="6.3.0.v20170613-1432"/>
+      <repository location="http://download.eclipse.org/modeling/mdt/ocl/updates/releases/6.3.0"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.ecore.xcore.ui.feature.group" version="1.3.0.v20150602-0808"/>
@@ -93,6 +93,7 @@
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.junit" version="4.11.0.v201303080030"/>
+      <unit id="org.objenesis" version="1.0.0.v201105211943"/>
       <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd b/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd
index 2c5877a..70d13ab 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd
@@ -24,7 +24,7 @@
 org.eclipse.rcp.feature.group
 }
 
-location "http://download.eclipse.org/modeling/mdt/ocl/updates/releases/4.0.1" {
+location "http://download.eclipse.org/modeling/mdt/ocl/updates/releases/6.3.0" {
 org.eclipse.ocl.master.feature.group
 org.eclipse.ocl.all.sdk.feature.group
 org.eclipse.ocl.examples.feature.group
@@ -92,6 +92,7 @@
 
 location "http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/" {
 org.junit
+org.objenesis
 }
 
 location "http://build.eclipse.org/rt/rap/base-platforms/3.1/extra-dependencies/" {
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.target b/builds/org.eclipse.emf.edapt.releng.target/edapt_2018-12.target
similarity index 80%
rename from builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.target
rename to builds/org.eclipse.emf.edapt.releng.target/edapt_2018-12.target
index 49ce883..948f945 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.target
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt_2018-12.target
@@ -1,33 +1,30 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde?>
-<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="Edapt Oxygen Target" sequenceNumber="1502350974">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><?pde?><!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --><target name="Edapt Oxygen Target" sequenceNumber="1547220322">
   <locations>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.compare.source.feature.group" version="2.1.2.201310031412"/>
       <unit id="org.eclipse.emf.compare.feature.group" version="2.1.2.201310031412"/>
       <unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="2.1.2.201310031412"/>
       <unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="2.1.2.201310031412"/>
       <repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases/2.1"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.rcp.source.feature.group" version="4.7.0.v20170612-1255"/>
-      <unit id="org.eclipse.pde.api.tools.ee.feature.feature.group" version="1.0.200.v20170515-0910"/>
-      <unit id="org.eclipse.releng.tools.feature.group" version="3.9.100.v20170516-0717"/>
-      <unit id="org.eclipse.equinox.sdk.feature.group" version="3.13.0.v20170531-1133"/>
-      <unit id="org.eclipse.sdk.ide" version="4.7.0.I20170612-0950"/>
-      <unit id="org.eclipse.platform.sdk" version="4.7.0.I20170612-0950"/>
-      <unit id="org.eclipse.test.feature.group" version="3.7.200.v20170511-1043"/>
-      <unit id="org.eclipse.sdk.tests.feature.group" version="4.7.0.v20170612-0950"/>
-      <unit id="org.eclipse.platform.ide" version="4.7.0.I20170612-0950"/>
-      <unit id="org.eclipse.rcp.feature.group" version="4.7.0.v20170612-1255"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.7"/>
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+      <unit id="org.eclipse.rcp.source.feature.group" version="4.10.0.v20181206-0815"/>
+      <unit id="org.eclipse.pde.api.tools.ee.feature.feature.group" version="1.0.400.v20180829-0709"/>
+      <unit id="org.eclipse.releng.tools.feature.group" version="3.10.200.v20181114-1053"/>
+      <unit id="org.eclipse.equinox.sdk.feature.group" version="3.16.0.v20181130-2106"/>
+      <unit id="org.eclipse.sdk.ide" version="4.10.0.I20181206-0815"/>
+      <unit id="org.eclipse.platform.sdk" version="4.10.0.I20181206-0815"/>
+      <unit id="org.eclipse.test.feature.group" version="3.7.500.v20181114-1814"/>
+      <unit id="org.eclipse.sdk.tests.feature.group" version="4.10.0.v20181206-1038"/>
+      <unit id="org.eclipse.platform.ide" version="4.10.0.I20181206-0815"/>
+      <unit id="org.eclipse.rcp.feature.group" version="4.10.0.v20181206-0815"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.10"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
       <unit id="org.eclipse.ocl.core.sdk.feature.group" version="4.0.1.v20120917-1739"/>
       <repository location="http://download.eclipse.org/modeling/mdt/ocl/updates/releases/4.0.1"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.ecore.xcore.ui.feature.group" version="1.3.0.v20150602-0808"/>
       <unit id="org.eclipse.emf.databinding.feature.group" version="1.4.0.v20150601-0402"/>
       <unit id="org.eclipse.emf.codegen.ecore.feature.group" version="2.11.0.v20150601-0402"/>
@@ -78,7 +75,7 @@
       <unit id="org.eclipse.emf.sdk.feature.group" version="2.11.0.v20150601-0402"/>
       <repository location="http://download.eclipse.org/modeling/emf/emf/updates/releases/"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
       <unit id="org.eclipse.acceleo.examples.feature.group" version="3.2.2.v20120807-0831"/>
       <unit id="org.eclipse.acceleo.runtime.feature.group" version="3.2.2.v20120807-0831"/>
       <unit id="org.eclipse.acceleo.ui.capabilities.feature.group" version="3.2.2.v20120807-0831"/>
@@ -87,13 +84,13 @@
       <unit id="org.eclipse.acceleo.sdk.feature.group" version="3.2.2.v20120807-0831"/>
       <repository location="http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.2"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
       <unit id="org.junit" version="4.11.0.v201303080030"/>
       <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
     </location>
-    <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
       <unit id="org.mockito.mockito-core-hamcrest-modified" version="1.9.5"/>
       <repository location="http://build.eclipse.org/rt/rap/base-platforms/3.1/extra-dependencies/"/>
     </location>
   </locations>
-</target>
+</target>
\ No newline at end of file
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.tpd b/builds/org.eclipse.emf.edapt.releng.target/edapt_2018-12.tpd
similarity index 97%
rename from builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.tpd
rename to builds/org.eclipse.emf.edapt.releng.target/edapt_2018-12.tpd
index eb9620b..3ce5d2d 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.tpd
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt_2018-12.tpd
@@ -7,7 +7,7 @@
 org.eclipse.emf.compare.rcp.ui.feature.group
 }
 
-location "http://download.eclipse.org/eclipse/updates/4.7" {
+location "http://download.eclipse.org/eclipse/updates/4.10" {
 org.eclipse.rcp.source.feature.group
 org.eclipse.pde.api.tools.ee.feature.feature.group
 org.eclipse.releng.tools.feature.group
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt_with_cdo.target b/builds/org.eclipse.emf.edapt.releng.target/edapt_with_cdo.target
index 4254e89..ec02d67 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt_with_cdo.target
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt_with_cdo.target
@@ -1,101 +1,106 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="Edapt build target" sequenceNumber="71">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.compare.feature.group" version="2.1.0.201306250935"/>
-<unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="2.1.0.201306250935"/>
-<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="2.1.0.201306250935"/>
-<unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="2.1.0.201306250935"/>
-<unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="2.1.0.201306250935"/>
-<unit id="org.eclipse.emf.compare.source.feature.group" version="2.1.0.201306250935"/>
-<repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases/2.1"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.equinox.sdk.feature.group" version="3.9.0.v20130604-2047"/>
-<unit id="org.eclipse.pde.api.tools.ee.feature.feature.group" version="1.0.0.v20130327-1631"/>
-<unit id="org.eclipse.platform.ide" version="4.3.0.I20130605-2000"/>
-<unit id="org.eclipse.platform.sdk" version="4.3.0.I20130605-2000"/>
-<unit id="org.eclipse.rcp.feature.group" version="4.3.0.v20130605-2000"/>
-<unit id="org.eclipse.rcp.source.feature.group" version="4.3.0.v20130605-2000"/>
-<unit id="org.eclipse.releng.tools.feature.group" version="3.5.0.v20130523-0845"/>
-<unit id="org.eclipse.sdk.ide" version="4.3.0.I20130605-2000"/>
-<unit id="org.eclipse.sdk.tests.feature.group" version="4.3.0.v20130606-0135"/>
-<unit id="org.eclipse.test.feature.group" version="3.6.0.v20130424-0442"/>
-<repository location="http://download.eclipse.org/eclipse/updates/4.3"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.ocl.all.sdk.feature.group" version="4.0.1.v20120919-0602"/>
-<unit id="org.eclipse.ocl.examples.feature.group" version="3.2.1.v20120919-0602"/>
-<unit id="org.eclipse.ocl.master.feature.group" version="4.0.1.v20120919-0602"/>
-<repository location="http://download.eclipse.org/modeling/mdt/ocl/updates/releases/4.0.1"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.all.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.codegen.ecore.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.codegen.ecore.ui.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.codegen.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.codegen.ui.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.common.feature.group" version="2.9.1.v20130827-0309"/>
-<unit id="org.eclipse.emf.common.ui.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.converter.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.databinding.edit.feature.group" version="1.3.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.databinding.feature.group" version="1.3.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.doc.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.ecore.edit.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.ecore.editor.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.ecore.feature.group" version="2.9.1.v20130827-0309"/>
-<unit id="org.eclipse.emf.ecore.xcore.feature.group" version="1.1.1.v20130903-0948"/>
-<unit id="org.eclipse.emf.ecore.xcore.sdk.feature.group" version="1.1.1.v20130903-0948"/>
-<unit id="org.eclipse.emf.ecore.xcore.ui.feature.group" version="1.1.0.v20130903-0948"/>
-<unit id="org.eclipse.emf.edit.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.edit.ui.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.examples.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.common.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.ecore.edit.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.ecore.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.edit.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.edit.ui.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.sdk.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.mapping.ecore.editor.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.mapping.ecore.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.mapping.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.mapping.ui.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.oda.ecore.feature.group" version="1.2.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.oda.ecore.ui.feature.group" version="1.1.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.oda.feature.group" version="1.2.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.oda.sdk.feature.group" version="1.2.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.rap.common.ui.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.rap.edit.ui.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.rap.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.rap.sdk.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.sdk.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.xsd.doc.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.ecore.converter.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.edit.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.editor.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.xsd.mapping.editor.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.mapping.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.sdk.feature.group" version="2.9.1.v20130902-0605"/>
-<repository location="http://download.eclipse.org/modeling/emf/emf/updates/releases/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.acceleo.doc.feature.group" version="3.2.2.v20120807-0831"/>
-<unit id="org.eclipse.acceleo.examples.feature.group" version="3.2.2.v20120807-0831"/>
-<unit id="org.eclipse.acceleo.feature.group" version="3.2.2.v20120807-0831"/>
-<unit id="org.eclipse.acceleo.runtime.feature.group" version="3.2.2.v20120807-0831"/>
-<unit id="org.eclipse.acceleo.sdk.feature.group" version="3.2.2.v20120807-0831"/>
-<unit id="org.eclipse.acceleo.ui.capabilities.feature.group" version="3.2.2.v20120807-0831"/>
-<repository location="http://download.eclipse.org/acceleo/updates/releases/3.2"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.junit" version="4.11.0.v201303080030"/>
-<unit id="org.objenesis" version="0.0.0"/>
-<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<?pde?>
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="Edapt Target" sequenceNumber="1564387581">
+  <locations>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="2.1.2.201310031412"/>
+      <unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="2.1.2.201310031412"/>
+      <unit id="org.eclipse.emf.compare.source.feature.group" version="2.1.2.201310031412"/>
+      <unit id="org.eclipse.emf.compare.feature.group" version="2.1.2.201310031412"/>
+      <unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="2.1.2.201310031412"/>
+      <unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="2.1.2.201310031412"/>
+      <repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases/2.1"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.rcp.source.feature.group" version="4.3.2.v20140221-1700"/>
+      <unit id="org.eclipse.pde.api.tools.ee.feature.feature.group" version="1.0.0.v20130327-1631"/>
+      <unit id="org.eclipse.releng.tools.feature.group" version="3.5.0.v20140203-1326"/>
+      <unit id="org.eclipse.equinox.sdk.feature.group" version="3.9.0.v20140221-1852"/>
+      <unit id="org.eclipse.sdk.ide" version="4.3.2.M20140221-1700"/>
+      <unit id="org.eclipse.platform.sdk" version="4.3.2.M20140221-1700"/>
+      <unit id="org.eclipse.test.feature.group" version="3.6.0.v20140203-1326"/>
+      <unit id="org.eclipse.sdk.tests.feature.group" version="4.3.0.v20140221-2329"/>
+      <unit id="org.eclipse.platform.ide" version="4.3.2.M20140221-1700"/>
+      <unit id="org.eclipse.rcp.feature.group" version="4.3.2.v20140221-1700"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.3"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.ocl.master.feature.group" version="6.3.0.v20170613-1432"/>
+      <unit id="org.eclipse.ocl.all.sdk.feature.group" version="5.3.0.v20170607-1133"/>
+      <unit id="org.eclipse.ocl.examples.feature.group" version="6.3.0.v20170613-1432"/>
+      <repository location="http://download.eclipse.org/modeling/mdt/ocl/updates/releases/6.3.0"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.emf.ecore.xcore.ui.feature.group" version="1.3.0.v20150602-0808"/>
+      <unit id="org.eclipse.emf.databinding.feature.group" version="1.4.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.codegen.ecore.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.edit.ui.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.mapping.ecore.editor.feature.group" version="2.10.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.gwt.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.mapping.ecore.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.rap.edit.ui.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.oda.ecore.feature.group" version="1.3.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.codegen.ecore.ui.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.xsd.sdk.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.common.feature.group" version="2.11.0.v20150512-0501"/>
+      <unit id="org.eclipse.emf.ecore.edit.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.xsd.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.ecore.xcore.feature.group" version="1.3.0.v20150602-0808"/>
+      <unit id="org.eclipse.emf.codegen.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.edit.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.ecore.xcore.sdk.feature.group" version="1.3.0.v20150602-0808"/>
+      <unit id="org.eclipse.xsd.edit.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.all.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.oda.ecore.ui.feature.group" version="1.3.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.rap.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.ecore.editor.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.codegen.ui.feature.group" version="2.8.0.v20150601-0402"/>
+      <unit id="org.eclipse.xsd.mapping.editor.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.mapping.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.xsd.doc.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.doc.feature.group" version="2.10.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.examples.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.oda.sdk.feature.group" version="1.4.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.gwt.common.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.rap.common.ui.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.xsd.editor.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.oda.feature.group" version="1.3.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.gwt.edit.ui.feature.group" version="2.7.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.common.ui.feature.group" version="2.10.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.rap.sdk.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.ecore.feature.group" version="2.11.0.v20150512-0501"/>
+      <unit id="org.eclipse.emf.mapping.ui.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.xsd.mapping.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.converter.feature.group" version="2.11.0.v20150601-0402"/>
+      <unit id="org.eclipse.xsd.ecore.converter.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.databinding.edit.feature.group" version="1.4.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.gwt.ecore.feature.group" version="2.9.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.gwt.edit.feature.group" version="2.8.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.gwt.ecore.edit.feature.group" version="2.8.0.v20150601-0402"/>
+      <unit id="org.eclipse.emf.sdk.feature.group" version="2.11.0.v20150601-0402"/>
+      <repository location="http://download.eclipse.org/modeling/emf/emf/updates/releases/"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.acceleo.examples.feature.group" version="3.2.2.v20120807-0831"/>
+      <unit id="org.eclipse.acceleo.runtime.feature.group" version="3.2.2.v20120807-0831"/>
+      <unit id="org.eclipse.acceleo.ui.capabilities.feature.group" version="3.2.2.v20120807-0831"/>
+      <unit id="org.eclipse.acceleo.doc.feature.group" version="3.2.2.v20120807-0831"/>
+      <unit id="org.eclipse.acceleo.feature.group" version="3.2.2.v20120807-0831"/>
+      <unit id="org.eclipse.acceleo.sdk.feature.group" version="3.2.2.v20120807-0831"/>
+      <repository location="http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.2"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.junit" version="4.11.0.v201303080030"/>
+      <unit id="org.objenesis" version="1.0.0.v201105211943"/>
+      <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20130827064939/repository/"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.mockito.mockito-core-hamcrest-modified" version="1.9.5"/>
+      <repository location="http://build.eclipse.org/rt/rap/base-platforms/3.1/extra-dependencies/"/>
+    </location>
+    <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.emf.cdo.compare.feature.group" version="4.2.0.v20130612-0849"/>
 <unit id="org.eclipse.emf.cdo.defs.feature.group" version="4.2.1.v20130913-0613"/>
 <unit id="org.eclipse.emf.cdo.doc.feature.group" version="4.2.0.v20130612-0849"/>
@@ -151,9 +156,5 @@
 <unit id="org.gastro.feature.group" version="4.2.0.v20130503-1908"/>
 <repository location="http://download.eclipse.org/modeling/emf/cdo/updates/releases/4.2"/>
 </location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.mockito.mockito-core-hamcrest-modified" version="1.9.5"/>
-<repository location="http://build.eclipse.org/rt/rap/base-platforms/3.1/extra-dependencies/"/>
-</location>
-</locations>
+  </locations>
 </target>
diff --git a/builds/org.eclipse.emf.edapt.releng.target/pom.xml b/builds/org.eclipse.emf.edapt.releng.target/pom.xml
index 5e904eb..a55a906 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/pom.xml
+++ b/builds/org.eclipse.emf.edapt.releng.target/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>root</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
      <relativePath>../org.eclipse.emf.edapt.releng</relativePath>  
   </parent>
   <packaging>eclipse-target-definition</packaging>
diff --git a/builds/org.eclipse.emf.edapt.releng/pom.xml b/builds/org.eclipse.emf.edapt.releng/pom.xml
index fbcada1..962e287 100644
--- a/builds/org.eclipse.emf.edapt.releng/pom.xml
+++ b/builds/org.eclipse.emf.edapt.releng/pom.xml
@@ -5,16 +5,16 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>edapt</groupId>
 	<artifactId>root</artifactId>
-	<version>1.3.1-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<properties>
-		<tycho-version>1.0.0</tycho-version>
+		<tycho-version>1.4.0</tycho-version>
 		<eclipse-jarsigner-version>1.1.4</eclipse-jarsigner-version>
 		<maven-surefire-version>2.18.1</maven-surefire-version>
 		<junit-version>4.12</junit-version>
 		<javadoc-version>2.10.3</javadoc-version>
-		<javadoc-title>Edapt 1.3.1 API</javadoc-title>
+		<javadoc-title>Edapt 1.4.0 API</javadoc-title>
 	</properties>
 
 	<profiles>
diff --git a/features/org.eclipse.emf.edapt.recorder.feature/feature.xml b/features/org.eclipse.emf.edapt.recorder.feature/feature.xml
index 2dc003a..ce0ddb3 100644
--- a/features/org.eclipse.emf.edapt.recorder.feature/feature.xml
+++ b/features/org.eclipse.emf.edapt.recorder.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.edapt.recorder.feature"
       label="Edapt Recorder Feature"
-      version="1.3.1.qualifier"
+      version="1.4.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.eclipse.org/edapt">
diff --git a/features/org.eclipse.emf.edapt.recorder.feature/pom.xml b/features/org.eclipse.emf.edapt.recorder.feature/pom.xml
index 8a25b60..a2ce1c0 100644
--- a/features/org.eclipse.emf.edapt.recorder.feature/pom.xml
+++ b/features/org.eclipse.emf.edapt.recorder.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>features</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.recorder.feature</artifactId>
diff --git a/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml b/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml
index 09905e0..57c48ca 100644
--- a/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml
+++ b/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.edapt.runtime.cdo.feature"
       label="Edapt CDO Feature"
-      version="1.3.1.qualifier"
+      version="1.4.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.eclipse.org/edapt">
diff --git a/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml b/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml
index e42ea98..a31bb61 100644
--- a/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml
+++ b/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>features</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.runtime.cdo.feature</artifactId>
diff --git a/features/org.eclipse.emf.edapt.runtime.feature/feature.xml b/features/org.eclipse.emf.edapt.runtime.feature/feature.xml
index 15d8647..9095e42 100644
--- a/features/org.eclipse.emf.edapt.runtime.feature/feature.xml
+++ b/features/org.eclipse.emf.edapt.runtime.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.edapt.runtime.feature"
       label="Edapt Runtime Feature"
-      version="1.3.1.qualifier"
+      version="1.4.0.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.eclipse.org/edapt">
diff --git a/features/org.eclipse.emf.edapt.runtime.feature/pom.xml b/features/org.eclipse.emf.edapt.runtime.feature/pom.xml
index d5624fc..c3e766d 100644
--- a/features/org.eclipse.emf.edapt.runtime.feature/pom.xml
+++ b/features/org.eclipse.emf.edapt.runtime.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>features</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.runtime.feature</artifactId>
diff --git a/features/pom.xml b/features/pom.xml
index 76e9fb6..911a648 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -9,7 +9,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 		<relativePath>../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF
index 7631940..afe3139 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.common.ui
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.common.ui.CommonUIActivator
 Require-Bundle: org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore.editor;bundle-version="2.7.0";visibility:=reexport,
- org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)";visibility:=reexport
+ org.eclipse.emf.edapt.common;bundle-version="[1.4.0,2.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.common.ui;version="1.3.1";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.ui"
+Export-Package: org.eclipse.emf.edapt.common.ui;version="1.4.0";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.ui"
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Automatic-Module-Name: org.eclipse.emf.edapt.common.ui
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/pom.xml b/plugins/org.eclipse.emf.edapt.common.ui/pom.xml
index 866be31..e2d1827 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.common.ui/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.common.ui</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF
index b0d4360..4d6b83d 100644
--- a/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.common
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.internal.common.CommonActivator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
@@ -10,8 +10,8 @@
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.edapt.common;version="1.3.1",
- org.eclipse.emf.edapt.internal.common;version="1.3.1";
+Export-Package: org.eclipse.emf.edapt.common;version="1.4.0",
+ org.eclipse.emf.edapt.internal.common;version="1.4.0";
   x-friends:="org.eclipse.emf.edapt.common.ui,
    org.eclipse.emf.edapt.declaration,
    org.eclipse.emf.edapt.history,
diff --git a/plugins/org.eclipse.emf.edapt.common/pom.xml b/plugins/org.eclipse.emf.edapt.common/pom.xml
index abb19dd..8a87ade 100644
--- a/plugins/org.eclipse.emf.edapt.common/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.common/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>plugins</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.common</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/internal/common/URIUtils.java b/plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/internal/common/URIUtils.java
index 9a2472c..0924764 100644
--- a/plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/internal/common/URIUtils.java
+++ b/plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/internal/common/URIUtils.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2010 BMW Car IT, Technische Universitaet Muenchen, and others.
+ * Copyright (c) 2007, 2019 BMW Car IT, Technische Universitaet Muenchen, Christian W. Damus, 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
@@ -9,6 +9,7 @@
  * BMW Car IT - Initial API and implementation
  * Technische Universitaet Muenchen - Major refactoring and extension
  * Johannes Faltermeier - Extension
+ * Christian W. Damus - bug 544147
  *******************************************************************************/
 package org.eclipse.emf.edapt.internal.common;
 
@@ -16,9 +17,12 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.math.BigInteger;
 import java.net.MalformedURLException;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -44,6 +48,9 @@
  */
 public final class URIUtils {
 
+	// Pattern matching a version number embedded in an URI segment
+	private static final Pattern VERSION_NUMBER_PATTERN = Pattern.compile("(?<=\\bv?|[-_])\\d+\\b"); //$NON-NLS-1$
+
 	/**
 	 * Constructor
 	 */
@@ -223,4 +230,32 @@
 	public static URI getRelativePath(URI uri, URI relativeTo) {
 		return uri.deresolve(relativeTo, true, true, true);
 	}
+
+	/**
+	 * Increment the first part of a version number in a URI segment, as might
+	 * be in a package namespace URI, if it appears to contain a version number.
+	 *
+	 * @param segment an URI segment
+	 * @return the incremented {@code segment}, or just the {@code segment} as is
+	 *         if it does not appear to be or to contain a discrete a version number
+	 */
+	public static String incrementVersionSegment(String segment) {
+		String result = segment;
+
+		final Matcher m = VERSION_NUMBER_PATTERN.matcher(segment);
+		if (m.find()) {
+			final StringBuffer newSegment = new StringBuffer();
+
+			// Who knows how many digits there may be? Handle them all
+			final BigInteger version = new BigInteger(m.group());
+			final BigInteger newVersion = version.add(BigInteger.ONE);
+
+			m.appendReplacement(newSegment, newVersion.toString());
+			m.appendTail(newSegment);
+			result = newSegment.toString();
+		}
+
+		return result;
+	}
+
 }
diff --git a/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF
index 3ebc68a..9fd6b8d 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.declaration.edit;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.edapt.declaration.provider.DeclarationEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.declaration.provider;version="1.3.1";
+Export-Package: org.eclipse.emf.edapt.declaration.provider;version="1.4.0";
   x-friends:="org.eclipse.emf.edapt.declaration.editor,
    org.eclipse.emf.edapt.history.edit,
    org.eclipse.emf.edapt.history.editor"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.edapt.declaration;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.declaration;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
diff --git a/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml b/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml
index 9b3cda5..3ce83a9 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.declaration.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF
index 72e2a49..502d806 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.declaration.editor;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.edapt.declaration.presentation.DeclarationEditorPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.declaration.presentation;version="1.3.1";x-internal:=true;
+Export-Package: org.eclipse.emf.edapt.declaration.presentation;version="1.4.0";x-internal:=true;
   uses:="org.eclipse.jface.wizard,
    org.eclipse.core.runtime,
    org.eclipse.emf.edit.ui.provider,
@@ -37,10 +37,10 @@
    org.eclipse.emf.common.ui"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.declaration.edit;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.declaration.edit;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.edapt.common.ui;bundle-version="[1.3.1,2.0.0)"
+ org.eclipse.emf.edapt.common.ui;bundle-version="[1.4.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.edapt.declaration.editor
diff --git a/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml b/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml
index 3a60661..3049e04 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.declaration.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF
index f6aff29..0fbb21e 100644
--- a/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.declaration;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.declaration;version="1.3.1",
- org.eclipse.emf.edapt.declaration.common;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.creation;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.delegation;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.generalization;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.impl;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.inheritance;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.merge;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.replacement;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.simple;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.declaration.util;version="1.3.1";x-friends:="org.eclipse.emf.edapt.declaration.edit",
- org.eclipse.emf.edapt.internal.declaration;version="1.3.1";
+Export-Package: org.eclipse.emf.edapt.declaration;version="1.4.0",
+ org.eclipse.emf.edapt.declaration.common;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.creation;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.delegation;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.generalization;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.impl;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.inheritance;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.merge;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.replacement;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.simple;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.declaration.util;version="1.4.0";x-friends:="org.eclipse.emf.edapt.declaration.edit",
+ org.eclipse.emf.edapt.internal.declaration;version="1.4.0";
   x-friends:="org.eclipse.emf.edapt.history,
    org.eclipse.emf.edapt.history.cdo,
    org.eclipse.emf.edapt.history.edit,
    org.eclipse.emf.edapt.migration.ui"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.edapt.migration;bundle-version="[1.3.1,2.0.0)"
+ org.eclipse.emf.edapt.common;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.edapt.migration;bundle-version="[1.4.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.edapt.declaration.DeclarationPlugin$Implementation
 Automatic-Module-Name: org.eclipse.emf.edapt.declaration
diff --git a/plugins/org.eclipse.emf.edapt.declaration/pom.xml b/plugins/org.eclipse.emf.edapt.declaration/pom.xml
index daa4027..47bae1c 100644
--- a/plugins/org.eclipse.emf.edapt.declaration/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.declaration/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.declaration</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF
index 50d7ec7..c65a6c3 100644
--- a/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.edapt.history.cdo;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
@@ -10,5 +10,5 @@
  org.eclipse.emf.cdo;bundle-version="[4.2.1,5.0.0)",
  org.eclipse.emf.cdo.net4j;bundle-version="[4.1.101,5.0.0)",
  org.eclipse.net4j.tcp;bundle-version="[4.1.100,5.0.0)"
-Export-Package: org.eclipse.emf.edapt.cdo.migration;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.cdo.migration.execution;version="1.3.1";x-internal:=true
+Export-Package: org.eclipse.emf.edapt.cdo.migration;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.cdo.migration.execution;version="1.4.0";x-internal:=true
diff --git a/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml b/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml
index 2e2ba62..8eab0c2 100644
--- a/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>plugins</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.history.cdo</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF
index 3a13c39..cc6879f 100644
--- a/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.history.edit;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.edapt.spi.history.provider.HistoryEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.history.instantiation;version="1.3.1";x-friends:="org.eclipse.emf.edapt.history.editor",
- org.eclipse.emf.edapt.history.provider.util;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.history.reconstruction;version="1.3.1";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.test",
- org.eclipse.emf.edapt.history.recorder;version="1.3.1";x-friends:="org.eclipse.emf.edapt.history.editor",
- org.eclipse.emf.edapt.spi.history.provider;version="1.3.1"
+Export-Package: org.eclipse.emf.edapt.history.instantiation;version="1.4.0";x-friends:="org.eclipse.emf.edapt.history.editor",
+ org.eclipse.emf.edapt.history.provider.util;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.history.reconstruction;version="1.4.0";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.test",
+ org.eclipse.emf.edapt.history.recorder;version="1.4.0";x-friends:="org.eclipse.emf.edapt.history.editor",
+ org.eclipse.emf.edapt.spi.history.provider;version="1.4.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.edapt.history;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.history;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.declaration;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.declaration.edit;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.declaration;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.declaration.edit;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.compare;bundle-version="[3.0.0,4.0.0)",
diff --git a/plugins/org.eclipse.emf.edapt.history.edit/pom.xml b/plugins/org.eclipse.emf.edapt.history.edit/pom.xml
index bbc4023..4378c03 100644
--- a/plugins/org.eclipse.emf.edapt.history.edit/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history.edit/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.history.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF
index ccf069b..2e7286d 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF
@@ -2,21 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.history.editor;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.edapt.history.presentation.HistoryEditorPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.history.instantiation.ui;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.history.presentation;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.history.presentation.action;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.history.reconstruction.ui;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.history.recorder.ui;version="1.3.1";x-internal:=true
+Export-Package: org.eclipse.emf.edapt.history.instantiation.ui;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.history.preferences.ui;x-internal:=true,
+ org.eclipse.emf.edapt.history.presentation;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.history.presentation.action;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.history.reconstruction.ui;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.history.recorder.ui;version="1.4.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.edapt.history.edit;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.history.edit;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.common.ui;bundle-version="[1.3.1,2.0.0)",
+ org.eclipse.emf.edapt.common.ui;bundle-version="[1.4.0,2.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.jdt.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.jdt.core;bundle-version="[3.7.0,4.0.0)",
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml b/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml
index 27edf96..891d224 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml
+++ b/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml
@@ -2,7 +2,7 @@
 <?eclipse version="3.0"?>
 
 <!--
-    Copyright (c) 2007, 2010 BMW Car IT, Technische Universitaet Muenchen, and others.
+    Copyright (c) 2007, 2019 BMW Car IT, Technische Universitaet Muenchen, 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
@@ -11,6 +11,7 @@
     Contributors:
         BMW Car IT - Initial API and implementation
         Technische Universitaet Muenchen - Major refactoring and extension
+        Christian W. Damus - bug 544155
  -->
 
 <plugin>
@@ -622,4 +623,20 @@
            name="Edapt">
      </category>
   </extension>
+  <extension
+        point="org.eclipse.ui.keywords">
+     <keyword
+            label="edapt history migration"
+            id="org.eclipse.emf.edapt.history"/>
+  </extension>
+  <extension
+        point="org.eclipse.ui.preferencePages">
+     <page
+           class="org.eclipse.emf.edapt.history.preferences.ui.HistoryPreferencePage"
+           id="org.eclipse.emf.edapt.preferences.history"
+           name="Edapt">
+        <keywordReference
+              id="org.eclipse.emf.edapt.history"/>
+     </page>
+  </extension>
 </plugin>
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/pom.xml b/plugins/org.eclipse.emf.edapt.history.editor/pom.xml
index 3e38941..99de267 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history.editor/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.history.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/ReleaseWizardPage.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/ReleaseWizardPage.java
index 53005fd..4d5c407 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/ReleaseWizardPage.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/ReleaseWizardPage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007-2015 BMW Car IT, TUM, EclipseSource Muenchen GmbH, and others.
+ * Copyright (c) 2007-2019 BMW Car IT, TUM, EclipseSource Muenchen GmbH, Christian W. Damus, and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
+ * Christian W. Damus - bug 544147
  ******************************************************************************/
 package org.eclipse.emf.edapt.history.instantiation.ui;
 
@@ -17,6 +18,7 @@
 import java.util.Set;
 
 import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.edapt.internal.common.URIUtils;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -28,6 +30,7 @@
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
@@ -141,6 +144,15 @@
 		final Point point = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
 		scrolledComposite.setMinSize(point);
 
+		if (packages.size() > 1) {
+			// Create convenience buttons to select/deselect all packages
+			final Composite buttonsComposite = new Composite(mainComposite, SWT.NONE);
+			GridDataFactory.swtDefaults().align(SWT.END, SWT.BEGINNING).applyTo(buttonsComposite);
+			buttonsComposite.setLayout(new FillLayout(SWT.HORIZONTAL));
+			createSelectAllButton(buttonsComposite, "Select &All", true); //$NON-NLS-1$
+			createSelectAllButton(buttonsComposite, "&Deselect All", false); //$NON-NLS-1$
+		}
+
 		setControl(mainComposite);
 
 		checkIfPageComplete();
@@ -186,9 +198,49 @@
 		});
 	}
 
+	private Button createSelectAllButton(Composite parent, final String label, final boolean select) {
+		final Button result = new Button(parent, SWT.PUSH);
+		result.setText(label);
+		result.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				selectAll(select);
+			}
+		});
+		return result;
+	}
+
+	private void selectAll(boolean select) {
+		for (final Map.Entry<EPackage, Button> next : packageToUpdateButton.entrySet()) {
+			final EPackage ePackage = next.getKey();
+			final Button checkbox = next.getValue();
+
+			if (checkbox.getSelection() != select) {
+				checkbox.setSelection(select);
+				setTextEnablement(checkbox, ePackage);
+			}
+		}
+
+		checkIfPageComplete();
+	}
+
 	private void setTextEnablement(final Button updateButton, final EPackage ePackage) {
-		packageToSourceText.get(ePackage).setEnabled(updateButton.getSelection());
-		packageToTargetText.get(ePackage).setEnabled(updateButton.getSelection());
+		final boolean selected = updateButton.getSelection();
+		final Text sourceText = packageToSourceText.get(ePackage);
+		final Text targetText = packageToTargetText.get(ePackage);
+
+		sourceText.setEnabled(selected);
+		targetText.setEnabled(selected);
+
+		// Can we pre-populate the target text?
+		final String target = targetText.getText().trim();
+		if (selected && target.isEmpty()) {
+			final String source = sourceText.getText().trim();
+			final String newTarget = URIUtils.incrementVersionSegment(source);
+			if (!source.equals(newTarget)) {
+				targetText.setText(newTarget);
+			}
+		}
 	}
 
 	private void checkIfPageComplete() {
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/HistoryPreferencePage.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/HistoryPreferencePage.java
new file mode 100644
index 0000000..2919a01
--- /dev/null
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/HistoryPreferencePage.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus 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:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.edapt.history.preferences.ui;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * Top-level preference page for the Edapt history management.
+ */
+public class HistoryPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
+
+	/**
+	 * Initializes me.
+	 */
+	public HistoryPreferencePage() {
+		super();
+	}
+
+	@Override
+	public void init(IWorkbench workbench) {
+		// Nothing to initialize
+	}
+
+	@Override
+	protected Control createContents(Composite parent) {
+		final Composite result = new Composite(parent, SWT.NONE);
+		GridLayoutFactory.swtDefaults().numColumns(2).applyTo(result);
+
+		createClearDialogsPreference(result);
+
+		return result;
+	}
+
+	private void createClearDialogsPreference(Composite parent) {
+		new Label(parent, SWT.NONE).setText("Forget all decisions remembered by dialogs:"); //$NON-NLS-1$
+		final Button clearDialogs = new Button(parent, SWT.PUSH);
+		clearDialogs.setText("Clear Dialogs"); //$NON-NLS-1$
+		clearDialogs.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				final boolean delete = MessageDialog.openConfirm(getShell(), "Clear Dialogs", //$NON-NLS-1$
+					"Are you sure you want to forget all responses to dialogs via the \"Remember my decision\" option?"); //$NON-NLS-1$
+
+				if (delete) {
+					ResourcePreferences.deleteAll();
+				}
+			}
+		});
+	}
+
+}
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/PromptKind.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/PromptKind.java
new file mode 100644
index 0000000..849b24d
--- /dev/null
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/PromptKind.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus 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:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.edapt.history.preferences.ui;
+
+import org.eclipse.jface.dialogs.MessageDialogWithToggle;
+import org.eclipse.jface.preference.IPreferenceStore;
+
+/**
+ * An enumeration of preference values for a prompting preference.
+ */
+public enum PromptKind {
+	PROMPT(MessageDialogWithToggle.PROMPT), NEVER(MessageDialogWithToggle.NEVER), ALWAYS(
+		MessageDialogWithToggle.ALWAYS);
+
+	private final String value;
+
+	private PromptKind(String value) {
+		this.value = value;
+	}
+
+	/**
+	 * Get the value of a preference {@code key} from the given {@code store}.
+	 *
+	 * @param store the preference store
+	 * @param key the preference to get
+	 * @return the preference value
+	 */
+	public static PromptKind get(IPreferenceStore store, String key) {
+		store.setDefault(key, PROMPT.value);
+
+		return getByValue(store.getString(key));
+	}
+
+	/**
+	 * Get a prompt kind by string value.
+	 *
+	 * @param value the value
+	 * @return the corresponding prompt kind, or {@link #PROMPT} if the {@code value}
+	 *         is invalid
+	 */
+	public static PromptKind getByValue(String value) {
+		PromptKind result = PROMPT;
+
+		for (final PromptKind next : values()) {
+			if (next.value.equals(value)) {
+				result = next;
+				break;
+			}
+		}
+
+		return result;
+	}
+
+	@Override
+	public String toString() {
+		return value;
+	}
+
+}
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/ResourcePreferences.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/ResourcePreferences.java
new file mode 100644
index 0000000..93690c9
--- /dev/null
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/preferences/ui/ResourcePreferences.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus 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:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.edapt.history.preferences.ui;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.ISaveContext;
+import org.eclipse.core.resources.ISaveParticipant;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+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.edapt.history.presentation.HistoryEditorPlugin;
+import org.eclipse.emf.edapt.history.util.HistoryUtils;
+import org.eclipse.emf.edapt.internal.common.FileUtils;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.jface.preference.IPersistentPreferenceStore;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferenceStore;
+
+/**
+ * Manager of preferences for resources by URI.
+ */
+public final class ResourcePreferences {
+
+	/** Location in the metadata area of the directory containing preference stores. */
+	private static final IPath STORE_LOCATION;
+
+	private static final Map<URI, IPersistentPreferenceStore> preferenceStores = new HashMap<URI, IPersistentPreferenceStore>();
+
+	static {
+		final IPath stateLocation = HistoryEditorPlugin.getPlugin().getStateLocation();
+		STORE_LOCATION = stateLocation.append("resources"); //$NON-NLS-1$
+	}
+
+	/**
+	 * Not instantiable by clients.
+	 */
+	private ResourcePreferences() {
+		super();
+	}
+
+	/**
+	 * Get the preference store for the principal resource of an editing domain.
+	 * That principal resource is the history resource, if any, otherwise the resource
+	 * that is being edited in that domain.
+	 *
+	 * @param editingDomain an editing domain
+	 * @return the preference store for its principal resource
+	 */
+	public synchronized static IPreferenceStore getPreferences(EditingDomain editingDomain) {
+		final ResourceSet rset = editingDomain.getResourceSet();
+		// Prefer the history resource, if any, else the resource being edited
+		final Resource resource = getHistoryOrMainResource(rset);
+		return getPreferences(rset.getURIConverter().normalize(resource.getURI()));
+	}
+
+	private static Resource getHistoryOrMainResource(ResourceSet rset) {
+		Resource result = HistoryUtils.getHistoryResource(rset);
+
+		if (result == null) {
+			result = rset.getResources().get(0);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Get the preference store for the resource identified by the given URI.
+	 *
+	 * @param uri the reosurce URI
+	 * @return the preference store for that resource
+	 */
+	public synchronized static IPreferenceStore getPreferences(URI uri) {
+		IPreferenceStore result = preferenceStores.get(uri);
+
+		if (result == null) {
+			result = createPreferenceStore(uri);
+		}
+
+		return result;
+	}
+
+	private static IPreferenceStore createPreferenceStore(URI uri) {
+		final IPath storeLocation;
+
+		try {
+			storeLocation = STORE_LOCATION.append(URLEncoder.encode(uri.toString(), "UTF-8") + ".prefs"); //$NON-NLS-1$//$NON-NLS-2$
+		} catch (final UnsupportedEncodingException e) {
+			throw new Error("UTF-8 encoding not supported"); //$NON-NLS-1$
+		}
+
+		final File storeFile = storeLocation.toFile();
+
+		final PreferenceStore result = new PreferenceStore(storeFile.getAbsolutePath());
+
+		if (storeFile.exists()) {
+			try {
+				result.load();
+			} catch (final IOException e) {
+				HistoryEditorPlugin.INSTANCE.log(e);
+			}
+		}
+
+		try {
+			register(result, uri);
+		} catch (final CoreException e) {
+			HistoryEditorPlugin.getPlugin().getLog().log(e.getStatus());
+		}
+
+		return result;
+	}
+
+	private static void register(IPersistentPreferenceStore store, URI uri) throws CoreException {
+		if (preferenceStores.isEmpty()) {
+			// Registering the first store.
+			installWorkspaceSaveParticipant();
+		}
+
+		preferenceStores.put(uri, store);
+	}
+
+	private static void installWorkspaceSaveParticipant() throws CoreException {
+		ResourcesPlugin.getWorkspace().addSaveParticipant(
+			HistoryEditorPlugin.getPlugin().getSymbolicName(),
+			new ISaveParticipant() {
+
+				@Override
+				public void saving(ISaveContext context) throws CoreException {
+					savePreferenceStores();
+				}
+
+				@Override
+				public void prepareToSave(ISaveContext context) throws CoreException {
+					// Not interesting
+				}
+
+				@Override
+				public void doneSaving(ISaveContext context) {
+					// Not interesting
+				}
+
+				@Override
+				public void rollback(ISaveContext context) {
+					// Not interesting
+				}
+			});
+	}
+
+	private static void savePreferenceStores() throws CoreException {
+		Map<URI, IPersistentPreferenceStore> toSave;
+
+		synchronized (ResourcePreferences.class) {
+			toSave = new HashMap<URI, IPersistentPreferenceStore>(preferenceStores);
+		}
+
+		for (final Iterator<Map.Entry<URI, IPersistentPreferenceStore>> iter = toSave.entrySet().iterator(); iter
+			.hasNext();) {
+
+			if (!iter.next().getValue().needsSaving()) {
+				iter.remove();
+			}
+		}
+
+		if (!toSave.isEmpty()) {
+			final List<URI> failed = new ArrayList<URI>(toSave.size());
+			final File storeDirectory = STORE_LOCATION.toFile();
+			if (storeDirectory.exists() && !storeDirectory.isDirectory()) {
+				throw new CoreException(new Status(IStatus.ERROR, HistoryEditorPlugin.getPlugin().getSymbolicName(),
+					String.format("Cannot create preference store. Path exists but is not a directory: %s", //$NON-NLS-1$
+						STORE_LOCATION)));
+			} else if (!storeDirectory.exists()) {
+				storeDirectory.mkdirs();
+			}
+
+			for (final Map.Entry<URI, IPersistentPreferenceStore> next : toSave.entrySet()) {
+				try {
+					next.getValue().save();
+				} catch (final IOException e) {
+					HistoryEditorPlugin.INSTANCE.log(e);
+					failed.add(next.getKey());
+				}
+			}
+
+			if (!failed.isEmpty()) {
+				throw new CoreException(new Status(IStatus.ERROR, HistoryEditorPlugin.getPlugin().getSymbolicName(),
+					String.format("Failed to save resource preferences: %s.", failed))); //$NON-NLS-1$
+			}
+		}
+	}
+
+	/**
+	 * Unset all resource preferences and delete them from the workspace metadata area.
+	 */
+	static void deleteAll() {
+		synchronized (ResourcePreferences.class) {
+			preferenceStores.clear();
+		}
+
+		FileUtils.deleteContents(STORE_LOCATION.toFile());
+	}
+}
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/EcoreEditorDetector.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/EcoreEditorDetector.java
index f7660a5..2d9303e 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/EcoreEditorDetector.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/EcoreEditorDetector.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2018 BMW Car IT, Technische Universitaet Muenchen, and others.
+ * Copyright (c) 2007, 2019 BMW Car IT, Technische Universitaet Muenchen, Christian W. Damus, 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
@@ -8,7 +8,7 @@
  * Contributors:
  * BMW Car IT - Initial API and implementation
  * Technische Universitaet Muenchen - Major refactoring and extension
- * Christian W. Damus - bug 529599
+ * Christian W. Damus - bugs 529599, 544155
  *******************************************************************************/
 package org.eclipse.emf.edapt.history.recorder.ui;
 
@@ -21,21 +21,30 @@
 import org.eclipse.emf.common.command.CommandStack;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.presentation.EcoreEditor;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.edapt.common.ui.EcoreUIUtils;
 import org.eclipse.emf.edapt.common.ui.PartAdapter;
+import org.eclipse.emf.edapt.history.preferences.ui.PromptKind;
+import org.eclipse.emf.edapt.history.preferences.ui.ResourcePreferences;
 import org.eclipse.emf.edapt.history.presentation.HistoryEditorPlugin;
 import org.eclipse.emf.edapt.history.recorder.AddResourceCommand;
 import org.eclipse.emf.edapt.history.recorder.EditingDomainListener;
 import org.eclipse.emf.edapt.history.recorder.IResourceLoadListener;
 import org.eclipse.emf.edapt.internal.common.LoggingUtils;
+import org.eclipse.emf.edapt.internal.common.ResourceUtils;
 import org.eclipse.emf.edapt.spi.history.HistoryPackage;
+import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialogWithToggle;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorReference;
@@ -157,12 +166,13 @@
 	}
 
 	/** Ask the user whether a resource should be added to the history. */
-	private void addHistory(final EditingDomainListener listener,
-		Resource resource) {
-		final boolean addHistory = MessageDialog.openQuestion(Display.getDefault()
-			.getActiveShell(), "Resource loaded", //$NON-NLS-1$
-			"A resource has been loaded. " //$NON-NLS-1$
-				+ "Do you want to add it to the history?"); //$NON-NLS-1$
+	private void addHistory(final EditingDomainListener listener, Resource resource) {
+		final List<EPackage> rootPackages = ResourceUtils.getRootElements(resource, EPackage.class);
+		if (rootPackages.isEmpty()) {
+			return; // Nothing to worry about
+		}
+
+		final boolean addHistory = shouldAddHistory(listener, resource, rootPackages);
 		if (addHistory) {
 			final CommandStack commandStack = listener.getEditingDomain()
 				.getCommandStack();
@@ -171,6 +181,77 @@
 	}
 
 	/**
+	 * Query whether we should add the given packages for a {@code resource} to the history, prompting the user
+	 * if necessary.
+	 *
+	 * @param listener the editing-domain listener in the context of a history
+	 * @param resource a resource that was loaded in the editing domain and contains Ecore packages
+	 * @param rootPackages the Ecore packages contained by the {@code resource}
+	 * @return whether to add the packages to the history
+	 */
+	private boolean shouldAddHistory(final EditingDomainListener listener, Resource resource,
+		final List<EPackage> rootPackages) {
+
+		final EditingDomain domain = listener.getEditingDomain();
+		final IPreferenceStore store = ResourcePreferences.getPreferences(domain);
+		final String resourceKey = "ignore." //$NON-NLS-1$
+			+ domain.getResourceSet().getURIConverter().normalize(resource.getURI()).toString();
+		store.setDefault(resourceKey, MessageDialogWithToggle.PROMPT);
+
+		final boolean result;
+		final PromptKind ignore = PromptKind.get(store, resourceKey);
+		switch (ignore) {
+		case ALWAYS:
+			// Don't need to prompt: user previously answered yes
+			result = true;
+			break;
+		case NEVER:
+			// Don't need to prompt: user previously answered no
+			result = false;
+			break;
+		default: // case PROMPT:
+			// Need to prompt: haven't remembered a previous answer
+			String title;
+			String message;
+			if (rootPackages.size() == 1) {
+				title = "Add EPackage to History"; //$NON-NLS-1$
+				message = NLS.bind("An Ecore resource has been loaded. " + //$NON-NLS-1$
+					"Add the EPackage ''{0}'' to the history?", //$NON-NLS-1$
+					getNSURI(rootPackages.get(0)));
+			} else {
+				title = "Add EPackages to History"; //$NON-NLS-1$
+				final StringBuilder nsURIs = new StringBuilder();
+				final String newline = System.getProperty("line.separator"); //$NON-NLS-1$
+				for (final EPackage next : rootPackages) {
+					nsURIs.append(newline);
+					nsURIs.append("  "); //$NON-NLS-1$
+					nsURIs.append(getNSURI(next));
+				}
+				message = NLS.bind("An Ecore resource has been loaded. " + //$NON-NLS-1$
+					"Add these EPackages to the history?{0}", //$NON-NLS-1$
+					nsURIs);
+			}
+
+			final MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoQuestion(
+				Display.getDefault().getActiveShell(), title, message,
+				"Remember my decision", false, store, resourceKey); //$NON-NLS-1$
+
+			result = dialog.getReturnCode() == IDialogConstants.YES_ID;
+			break;
+		}
+		return result;
+	}
+
+	private String getNSURI(EPackage ePackage) {
+		String result = ePackage.getNsURI();
+		if (result == null || result.isEmpty()) {
+			// During development, maybe it doesn't have an NS URI, yet
+			result = String.valueOf(EcoreUtil.getURI(ePackage));
+		}
+		return result;
+	}
+
+	/**
 	 * Hack the adapter factory of an Ecore editor so that it uses the adapter
 	 * factory registry instead of the reflective adapter factory.
 	 */
diff --git a/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF
index 32aa9eb..343f7d5 100644
--- a/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF
@@ -2,38 +2,38 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.history;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.history.reconstruction;version="1.3.1";
+Export-Package: org.eclipse.emf.edapt.history.reconstruction;version="1.4.0";
   x-friends:="org.eclipse.emf.edapt.history.cdo,
    org.eclipse.emf.edapt.history.edit,
    org.eclipse.emf.edapt.history.editor",
- org.eclipse.emf.edapt.history.recorder;version="1.3.1";x-friends:="org.eclipse.emf.edapt.history.edit",
- org.eclipse.emf.edapt.history.util;version="1.3.1";
+ org.eclipse.emf.edapt.history.recorder;version="1.4.0";x-friends:="org.eclipse.emf.edapt.history.edit",
+ org.eclipse.emf.edapt.history.util;version="1.4.0";
   x-friends:="org.eclipse.emf.edapt.history.cdo,
    org.eclipse.emf.edapt.history.edit,
    org.eclipse.emf.edapt.history.editor,
    org.eclipse.emf.edapt.migration.test,
    org.eclipse.emf.edapt.migration.ui",
- org.eclipse.emf.edapt.internal.migration.execution;version="1.3.1",
- org.eclipse.emf.edapt.internal.migration.execution.internal;version="1.3.1";
+ org.eclipse.emf.edapt.internal.migration.execution;version="1.4.0",
+ org.eclipse.emf.edapt.internal.migration.execution.internal;version="1.4.0";
   x-friends:="org.eclipse.emf.edapt.history.cdo,
    org.eclipse.emf.edapt.history.edit,
    org.eclipse.emf.edapt.history.editor,
    org.eclipse.emf.edapt.migration.ui",
- org.eclipse.emf.edapt.migration.execution;version="1.3.1",
- org.eclipse.emf.edapt.spi.history;version="1.3.1",
- org.eclipse.emf.edapt.spi.history.impl;version="1.3.1",
- org.eclipse.emf.edapt.spi.history.util;version="1.3.1"
+ org.eclipse.emf.edapt.migration.execution;version="1.4.0",
+ org.eclipse.emf.edapt.spi.history;version="1.4.0",
+ org.eclipse.emf.edapt.spi.history.impl;version="1.4.0",
+ org.eclipse.emf.edapt.spi.history.util;version="1.4.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.common;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.declaration;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.migration;bundle-version="[1.3.1,2.0.0)";visibility:=reexport
+ org.eclipse.emf.edapt.declaration;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.migration;bundle-version="[1.4.0,2.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.edapt.spi.history.HistoryPlugin$Implementation
 Automatic-Module-Name: org.eclipse.emf.edapt.history
diff --git a/plugins/org.eclipse.emf.edapt.history/pom.xml b/plugins/org.eclipse.emf.edapt.history/pom.xml
index 4c23348..bbb80a8 100644
--- a/plugins/org.eclipse.emf.edapt.history/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history/pom.xml
@@ -5,10 +5,10 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.history</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.3.1-SNAPSHOT</version>
+  <version>1.4.0-SNAPSHOT</version>
 </project>
diff --git a/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF
index 30e1a77..bc1f4f6 100644
--- a/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.migration.test;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.migration.test.TestPlugin$Implementation
 Require-Bundle: org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.common;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.history;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
- org.eclipse.emf.edapt.history.edit;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.edapt.migration;bundle-version="[1.3.1,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.history;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edapt.history.edit;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.edapt.migration;bundle-version="[1.4.0,2.0.0)";visibility:=reexport,
  org.junit;bundle-version="[4.0.0,5.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.migration.test;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.migration.test.impl;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.migration.test.util;version="1.3.1";x-internal:=true
+Export-Package: org.eclipse.emf.edapt.migration.test;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.migration.test.impl;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.migration.test.util;version="1.4.0";x-internal:=true
 Bundle-Vendor: %providerName
 Automatic-Module-Name: org.eclipse.emf.edapt.migration.test
diff --git a/plugins/org.eclipse.emf.edapt.migration.test/pom.xml b/plugins/org.eclipse.emf.edapt.migration.test/pom.xml
index 2f5f3b8..2c2295f 100644
--- a/plugins/org.eclipse.emf.edapt.migration.test/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.migration.test/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.migration.test</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF
index d76203f..d770b03 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.migration.ui;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.migration.ui.MigrationUIActivator
 Require-Bundle: org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
- org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.edapt.common.ui;bundle-version="[1.3.1,2.0.0)",
+ org.eclipse.emf.edapt.common;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.edapt.common.ui;bundle-version="[1.4.0,2.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.edapt.history;bundle-version="[1.3.1,2.0.0)",
+ org.eclipse.emf.edapt.history;bundle-version="[1.4.0,2.0.0)",
  org.eclipse.debug.core;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.jdt.launching;bundle-version="[3.6.0,4.0.0)",
  org.eclipse.debug.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.jdt.debug.ui;bundle-version="[3.6.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.migration.ui;version="1.3.1";x-internal:=true
+Export-Package: org.eclipse.emf.edapt.migration.ui;version="1.4.0";x-internal:=true
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Automatic-Module-Name: org.eclipse.emf.edapt.migration.ui
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml b/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml
index 4ef72c2..0841e7a 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.migration.ui</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF
index f27cdaf..67ecdad 100644
--- a/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF
@@ -2,27 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.migration;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.internal.migration;version="1.3.1",
- org.eclipse.emf.edapt.internal.migration.impl;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.internal.migration.internal;version="1.3.1";
+Export-Package: org.eclipse.emf.edapt.internal.migration;version="1.4.0",
+ org.eclipse.emf.edapt.internal.migration.impl;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.internal.migration.internal;version="1.4.0";
   x-friends:="org.eclipse.emf.edapt.history,
    org.eclipse.emf.edapt.history.cdo,
    org.eclipse.emf.edapt.migration.test,
    org.eclipse.emf.edapt.migration.ui",
- org.eclipse.emf.edapt.migration;version="1.3.1",
- org.eclipse.emf.edapt.spi.migration;version="1.3.1",
- org.eclipse.emf.edapt.spi.migration.impl;version="1.3.1",
- org.eclipse.emf.edapt.spi.migration.util;version="1.3.1"
+ org.eclipse.emf.edapt.migration;version="1.4.0",
+ org.eclipse.emf.edapt.spi.migration;version="1.4.0",
+ org.eclipse.emf.edapt.spi.migration.impl;version="1.4.0",
+ org.eclipse.emf.edapt.spi.migration.util;version="1.4.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
  org.eclipse.ocl.ecore;bundle-version="[3.1.0,4.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
- org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)"
+ org.eclipse.emf.edapt.common;bundle-version="[1.4.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.edapt.spi.migration.MigrationPlugin$Implementation
 Automatic-Module-Name: org.eclipse.emf.edapt.migration
diff --git a/plugins/org.eclipse.emf.edapt.migration/pom.xml b/plugins/org.eclipse.emf.edapt.migration/pom.xml
index 1c5e05d..a60415d 100644
--- a/plugins/org.eclipse.emf.edapt.migration/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.migration/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.3.1-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.migration</artifactId>
diff --git a/plugins/pom.xml b/plugins/pom.xml
index a32da40..ae7e691 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -9,7 +9,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 		<relativePath>../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 
diff --git a/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF
index 32ab18b..fcb1eff 100644
--- a/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Edapt.Common Tests
 Bundle-SymbolicName: org.eclipse.emf.edapt.common.tests
-Bundle-Version: 1.3.1.qualifier
-Fragment-Host: org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)"
+Bundle-Version: 1.4.0.qualifier
+Fragment-Host: org.eclipse.emf.edapt.common;bundle-version="[1.4.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.edapt.internal.common;version="1.3.1";x-internal:=true
+Export-Package: org.eclipse.emf.edapt.internal.common;version="1.4.0";x-internal:=true
 Automatic-Module-Name: org.eclipse.emf.edapt.common.tests
diff --git a/tests/org.eclipse.emf.edapt.common.tests/pom.xml b/tests/org.eclipse.emf.edapt.common.tests/pom.xml
index ca61d9e..3c9e101 100644
--- a/tests/org.eclipse.emf.edapt.common.tests/pom.xml
+++ b/tests/org.eclipse.emf.edapt.common.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 		<relativePath>../../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 	<groupId>edapt</groupId>
diff --git a/tests/org.eclipse.emf.edapt.common.tests/src/org/eclipse/emf/edapt/internal/common/URIUtilsTest.java b/tests/org.eclipse.emf.edapt.common.tests/src/org/eclipse/emf/edapt/internal/common/URIUtilsTest.java
index bae32a2..7d90c34 100644
--- a/tests/org.eclipse.emf.edapt.common.tests/src/org/eclipse/emf/edapt/internal/common/URIUtilsTest.java
+++ b/tests/org.eclipse.emf.edapt.common.tests/src/org/eclipse/emf/edapt/internal/common/URIUtilsTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007-2015 BMW Car IT, TUM, EclipseSource Muenchen GmbH, and others.
+ * Copyright (c) 2007-2019 BMW Car IT, TUM, EclipseSource Muenchen GmbH, Christian W. Damus, and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -8,40 +8,103 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
+ * Christian W. Damus - bug 544147
  ******************************************************************************/
 package org.eclipse.emf.edapt.internal.common;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.FileNotFoundException;
+import java.util.Arrays;
 import java.util.Scanner;
 
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl;
 import org.junit.Test;
+import org.junit.experimental.runners.Enclosed;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
 
+@RunWith(Enclosed.class)
 public class URIUtilsTest {
 
-	@Test
-	public void testGetJavaFileWithPlatformPluginURI() throws FileNotFoundException {
-		Scanner scanner = null;
-		try {
-			final URI uri = URI.createPlatformPluginURI("org.eclipse.emf.edapt.common.tests/resources/resource", false); //$NON-NLS-1$
-			assertTrue(new ExtensibleURIConverterImpl().exists(uri, null));
-			final File javaFile = URIUtils.getJavaFile(uri);
-			assertNotNull(javaFile);
-			scanner = new Scanner(javaFile);
-			scanner.useDelimiter("\\Z"); //$NON-NLS-1$
-			final String content = scanner.next();
-			assertEquals("foo", content); //$NON-NLS-1$
-		} finally {
-			if (scanner != null) {
-				scanner.close();
+	/**
+	 * Core tests.
+	 */
+	public static class Core {
+
+		@Test
+		public void testGetJavaFileWithPlatformPluginURI() throws FileNotFoundException {
+			Scanner scanner = null;
+			try {
+				final URI uri = URI.createPlatformPluginURI("org.eclipse.emf.edapt.common.tests/resources/resource", //$NON-NLS-1$
+					false);
+				assertTrue(new ExtensibleURIConverterImpl().exists(uri, null));
+				final File javaFile = URIUtils.getJavaFile(uri);
+				assertNotNull(javaFile);
+				scanner = new Scanner(javaFile);
+				scanner.useDelimiter("\\Z"); //$NON-NLS-1$
+				final String content = scanner.next();
+				assertEquals("foo", content); //$NON-NLS-1$
+			} finally {
+				if (scanner != null) {
+					scanner.close();
+				}
 			}
 		}
 
 	}
+
+	/**
+	 * Test cases for the {@link URIUtils#incrementVersionSegment(String)} API.
+	 */
+	@RunWith(Parameterized.class)
+	public static class IncrementVersionSegment {
+		private final String input;
+		private final String expected;
+
+		/**
+		 * Initializes me with the {@code input} segment and the {@code expected} result.
+		 *
+		 * @param input the segment to increment
+		 * @param expected the expected result
+		 */
+		public IncrementVersionSegment(String input, String expected) {
+			super();
+
+			this.input = input;
+			this.expected = expected;
+		}
+
+		@Test
+		public void increment() {
+			assertThat(URIUtils.incrementVersionSegment(input), is(expected));
+		}
+
+		@Parameters(name = "{0}")
+		@SuppressWarnings("nls")
+		public static Iterable<Object[]> parameters() {
+			return Arrays.asList(new Object[][] {
+				{ "1", "2" },
+				{ "v1", "v2" },
+				{ "1.0.0", "2.0.0" },
+				{ "v1.0.0", "v2.0.0" },
+				{ "beta_1", "beta_2" },
+				{ "beta-1.0.0", "beta-2.0.0" },
+				{ "dev1", "dev1" }, // Not like "v1"
+				{ "dev1_1.0.0", "dev1_2.0.0" },
+				{ "jar.1.0.0", "jar.2.0.0" },
+				{ "v123456789012345678901234567890", "v123456789012345678901234567891" },
+				{ "SNAPSHOT", "SNAPSHOT" },
+			});
+		}
+
+	}
+
 }
diff --git a/tests/org.eclipse.emf.edapt.rcptt/general/Multiple ecores.test b/tests/org.eclipse.emf.edapt.rcptt/general/Multiple ecores.test
index da4c95a..4dc565f 100644
--- a/tests/org.eclipse.emf.edapt.rcptt/general/Multiple ecores.test
+++ b/tests/org.eclipse.emf.edapt.rcptt/general/Multiple ecores.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _ExiWUMoSEeeVv4pPxMNi2w
-Runtime-Version: 2.2.0.201706152316
-Save-Time: 11/15/17 3:43 PM
+Runtime-Version: 2.3.0.201806262310
+Save-Time: 2/6/19 9:54 AM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -28,7 +28,7 @@
     | select "platform:\\/resource\\/org.eclipse.emf.ecp.makeithappen.model\\/model\\/My.ecore/" | double-click
 with [get-view Properties | get-tree] {
     select "Ns URI" | activate-cell-edit -column 1
-    get-editbox | set-text a
+    get-editbox | set-text "http://test/a"
     apply-cell-edit
     select Name | activate-cell-edit -column 1
     get-editbox | set-text a
@@ -50,7 +50,11 @@
         get-button OK | click
     }
     get-button OK | click
-    get-window "Resource loaded" | get-button Yes | click
+    with [get-window "Add EPackage to History"] {
+        get-label "An Ecore resource.*" | get-property caption | contains "'http://test/a'" | verify-true
+        get-button "Remember my decision" | click
+        get-button Yes | click
+    }
 }
 get-view "Operation Browser - task.ecore" | click
 get-view "Operation Browser - task.ecore" | get-button Release | click
@@ -61,7 +65,8 @@
         | equals "http://eclipse/org/emf/ecp/makeithappen/model/task" | verify-true
     get-editbox -after [get-label "http://eclipse/org/emf/ecp/makeithappen/model/task"] | get-property text 
         | equals task | verify-true
-    get-label a | get-property caption | equals a | verify-true
-    get-editbox -after [get-label a] | get-property text | equals a | verify-true
+    get-label "http://test/a" | get-property caption | equals "http://test/a" | verify-true
+    get-editbox -after [get-label "http://test/a"] | get-property text | equals "a" | verify-true
 }
+
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/org.eclipse.emf.edapt.rcptt/pom.xml b/tests/org.eclipse.emf.edapt.rcptt/pom.xml
index d22a239..be5af12 100644
--- a/tests/org.eclipse.emf.edapt.rcptt/pom.xml
+++ b/tests/org.eclipse.emf.edapt.rcptt/pom.xml
@@ -4,12 +4,12 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.rcptt</artifactId>
-	<version>1.3.1-SNAPSHOT</version>
+	<version>1.4.0-SNAPSHOT</version>
 	<packaging>rcpttTest</packaging>
 
 	<properties>
-		<rcptt-maven-version>2.3.0</rcptt-maven-version>
-		<rcptt-runner-version>2.3.0</rcptt-runner-version>
+		<rcptt-maven-version>2.4.0-SNAPSHOT</rcptt-maven-version>
+		<rcptt-runner-version>2.4.0-SNAPSHOT</rcptt-runner-version>
 		<toolchains-version>1.1</toolchains-version>
 	</properties>
 
diff --git a/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
index e067e15..9bfaf49 100644
--- a/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.tests;singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.4.0.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecore.xmi;bundle-version="[2.9.1,3.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.9.0,3.0.0)",
- org.eclipse.emf.edapt.common;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.edapt.migration.test;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.edapt.history.editor;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.edapt.migration;bundle-version="[1.3.1,2.0.0)",
- org.eclipse.emf.edapt.declaration.editor;bundle-version="[1.3.1,2.0.0)",
+ org.eclipse.emf.edapt.common;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.edapt.migration.test;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.edapt.history.editor;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.edapt.migration;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.edapt.declaration.editor;bundle-version="[1.3.0,2.0.0)",
  org.junit;bundle-version="[4.11.0,5.0.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
  org.objenesis;bundle-version="[1.0.0,2.0.0)"
-Export-Package: org.eclipse.emf.edapt.tests.declaration;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.tests.history;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.tests.migration;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.tests.migration.custom;version="1.3.1";x-internal:=true,
- org.eclipse.emf.edapt.tests.util;version="1.3.1";x-internal:=true
+Export-Package: org.eclipse.emf.edapt.tests.declaration;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.tests.history;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.tests.migration;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.tests.migration.custom;version="1.4.0";x-internal:=true,
+ org.eclipse.emf.edapt.tests.util;version="1.4.0";x-internal:=true
 Bundle-Vendor: %providerName
diff --git a/tests/org.eclipse.emf.edapt.tests/pom.xml b/tests/org.eclipse.emf.edapt.tests/pom.xml
index 8686f84..25c1880 100644
--- a/tests/org.eclipse.emf.edapt.tests/pom.xml
+++ b/tests/org.eclipse.emf.edapt.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.3.1-SNAPSHOT</version>
+		<version>1.4.0-SNAPSHOT</version>
 		<relativePath>../../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 	<groupId>edapt</groupId>
