Bug 520819 - Introduce post load / pre migration processor

* Add processor
* Adjust targets (add mockito, adjust from neon to oxygen)

Change-Id: I2e286ce466479db398ce4b2230205aefb929a6ef
Signed-off-by: Johannes Faltermeier <jfaltermeier@eclipsesource.com>
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt.target b/builds/org.eclipse.emf.edapt.releng.target/edapt.target
index 55c9878..a7d26c6 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="1472207247">
+<target name="Edapt Target" sequenceNumber="1502350970">
   <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"/>
@@ -95,5 +95,9 @@
       <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="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>
   </locations>
 </target>
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd b/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd
index e3dbf6d..2c5877a 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt.tpd
@@ -94,3 +94,6 @@
 org.junit
 }
 
+location "http://build.eclipse.org/rt/rap/base-platforms/3.1/extra-dependencies/" {
+org.mockito.mockito-core-hamcrest-modified
+}
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt_neon.target b/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.target
similarity index 88%
rename from builds/org.eclipse.emf.edapt.releng.target/edapt_neon.target
rename to builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.target
index da25b34..49ce883 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt_neon.target
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.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 Neon Target" sequenceNumber="1464859164">
+<target name="Edapt Oxygen Target" sequenceNumber="1502350974">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.compare.source.feature.group" version="2.1.2.201310031412"/>
@@ -11,17 +11,17 @@
       <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.6.0.v20160525-2000"/>
-      <unit id="org.eclipse.pde.api.tools.ee.feature.feature.group" version="1.0.1.v20160419-1303"/>
-      <unit id="org.eclipse.releng.tools.feature.group" version="3.9.0.v20160424-1559"/>
-      <unit id="org.eclipse.equinox.sdk.feature.group" version="3.12.0.v20160525-1303"/>
-      <unit id="org.eclipse.sdk.ide" version="4.6.0.I20160525-2000"/>
-      <unit id="org.eclipse.platform.sdk" version="4.6.0.I20160525-2000"/>
-      <unit id="org.eclipse.test.feature.group" version="3.7.100.v20160503-1715"/>
-      <unit id="org.eclipse.sdk.tests.feature.group" version="4.6.0.v20160525-2000"/>
-      <unit id="org.eclipse.platform.ide" version="4.6.0.I20160525-2000"/>
-      <unit id="org.eclipse.rcp.feature.group" version="4.6.0.v20160525-2000"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.6milestones"/>
+      <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>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.ocl.core.sdk.feature.group" version="4.0.1.v20120917-1739"/>
@@ -91,5 +91,9 @@
       <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">
+      <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>
diff --git a/builds/org.eclipse.emf.edapt.releng.target/edapt_neon.tpd b/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.tpd
similarity index 93%
rename from builds/org.eclipse.emf.edapt.releng.target/edapt_neon.tpd
rename to builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.tpd
index eebfe65..eb9620b 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/edapt_neon.tpd
+++ b/builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.tpd
@@ -1,4 +1,4 @@
-target "Edapt Neon Target"
+target "Edapt Oxygen Target"
 
 location "http://download.eclipse.org/modeling/emf/compare/updates/releases/2.1" {
 org.eclipse.emf.compare.source.feature.group
@@ -7,7 +7,7 @@
 org.eclipse.emf.compare.rcp.ui.feature.group
 }
 
-location "http://download.eclipse.org/eclipse/updates/4.6milestones" {
+location "http://download.eclipse.org/eclipse/updates/4.7" {
 org.eclipse.rcp.source.feature.group
 org.eclipse.pde.api.tools.ee.feature.feature.group
 org.eclipse.releng.tools.feature.group
@@ -88,3 +88,6 @@
 org.junit
 }
 
+location "http://build.eclipse.org/rt/rap/base-platforms/3.1/extra-dependencies/" {
+org.mockito.mockito-core-hamcrest-modified
+}
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 e1b9418..4254e89 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,156 +1,159 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?>
-
-<target name="Edapt target" sequenceNumber="69">
+<?pde version="3.8"?><target name="Edapt build target" sequenceNumber="71">
 <locations>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.compare.ide.ui.source.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.source.feature.group" version="2.1.0.201306250935"/>
+<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.rcp.ui.source.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="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.rcp.source.feature.group" version="4.3.0.v20130605-2000"/>
-<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.v20130523-0845"/>
+<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.sdk.ide" version="4.3.0.I20130605-2000"/>
-<unit id="org.eclipse.platform.sdk" version="4.3.0.I20130605-2000"/>
-<unit id="org.eclipse.test.feature.group" version="3.6.0.v20130424-0442"/>
-<unit id="org.eclipse.sdk.tests.feature.group" version="4.3.0.v20130606-0135"/>
+<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="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.ocl.master.feature.group" version="4.0.1.v20120919-0602"/>
+<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="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecore.xcore.ui.feature.group" version="1.1.0.v20130903-0948"/>
-<unit id="org.eclipse.emf.databinding.feature.group" version="1.3.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.codegen.ecore.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.edit.ui.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.gwt.sdk.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.mapping.ecore.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.rap.edit.ui.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.oda.ecore.feature.group" version="1.2.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.codegen.ecore.ui.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.xsd.sdk.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.common.feature.group" version="2.9.1.v20130827-0309"/>
-<unit id="org.eclipse.emf.ecore.edit.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.ecore.xcore.feature.group" version="1.1.1.v20130903-0948"/>
-<unit id="org.eclipse.emf.codegen.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.edit.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.ecore.xcore.sdk.feature.group" version="1.1.1.v20130903-0948"/>
-<unit id="org.eclipse.xsd.edit.feature.group" version="2.7.0.v20130902-0605"/>
+<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.oda.ecore.ui.feature.group" version="1.1.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.rap.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.ecore.editor.feature.group" version="2.9.0.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.xsd.mapping.editor.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.mapping.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.doc.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.feature.group" version="2.9.1.v20130902-0605"/>
-<unit id="org.eclipse.emf.doc.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.examples.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.oda.sdk.feature.group" version="1.2.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.common.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.rap.common.ui.feature.group" version="2.8.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.editor.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.oda.feature.group" version="1.2.0.v20130902-0605"/>
-<unit id="org.eclipse.emf.gwt.edit.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.rap.sdk.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.mapping.ui.feature.group" version="2.7.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.mapping.feature.group" version="2.7.0.v20130902-0605"/>
 <unit id="org.eclipse.emf.converter.feature.group" version="2.9.0.v20130902-0605"/>
-<unit id="org.eclipse.xsd.ecore.converter.feature.group" version="2.8.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.ecore.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="true" includeMode="slicer" includeSource="true" 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"/>
+<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="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<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="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.cdo.migrator.feature.group" version="4.2.0.v20130503-1908"/>
-<unit id="org.eclipse.emf.cdo.doc.feature.group" version="4.2.0.v20130612-0849"/>
-<unit id="org.eclipse.emf.cdo.explorer.product.feature.group" version="4.1.100.v20130503-1908"/>
-<unit id="org.eclipse.emf.cdo.server.db4o.feature.group" version="4.2.0.v20130601-1611"/>
-<unit id="org.gastro.feature.group" version="4.2.0.v20130503-1908"/>
+<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.server.lissome.feature.group" version="4.2.1.v20130810-1101"/>
-<unit id="org.eclipse.emf.cdo.feature.group" version="4.2.1.v20130913-0613"/>
-<unit id="org.eclipse.emf.cdo.server.objectivity.feature.group" version="4.2.0.v20130811-0646"/>
-<unit id="org.eclipse.emf.cdo.examples.feature.group" version="4.2.0.v20130601-0759"/>
-<unit id="org.eclipse.emf.cdo.server.product.feature.group" version="4.1.100.v20130531-1716"/>
-<unit id="org.eclipse.emf.cdo.server.feature.group" version="4.2.1.v20130913-0613"/>
-<unit id="org.eclipse.emf.cdo.server.db.feature.group" version="4.2.1.v20130811-0503"/>
 <unit id="org.eclipse.emf.cdo.defs.feature.group" version="4.2.1.v20130913-0613"/>
-<unit id="org.eclipse.emf.cdo.server.mongodb.feature.group" version="4.2.0.v20130601-1611"/>
-<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="4.2.1.v20130913-0613"/>
-<unit id="org.eclipse.emf.cdo.tests.feature.group" version="4.2.1.v20130913-0613"/>
+<unit id="org.eclipse.emf.cdo.doc.feature.group" version="4.2.0.v20130612-0849"/>
+<unit id="org.eclipse.emf.cdo.examples.feature.group" version="4.2.0.v20130601-0759"/>
 <unit id="org.eclipse.emf.cdo.examples.hibernate.feature.group" version="4.2.1.v20130813-1544"/>
-<unit id="org.eclipse.emf.cdo.server.hibernate.feature.group" version="4.2.1.v20130911-1235"/>
-<unit id="org.eclipse.emf.cdo.tests.hibernate.feature.group" version="4.2.1.v20130911-1235"/>
-<unit id="org.eclipse.emf.cdo.releng.projectcopy.feature.group" version="1.1.0.v20130503-1908"/>
-<unit id="org.eclipse.emf.cdo.releng.version.doc.feature.group" version="1.1.0.v20130612-0849"/>
-<unit id="org.eclipse.emf.cdo.releng.version.headless.feature.group" version="1.1.0.v20130601-1611"/>
-<unit id="org.eclipse.emf.cdo.releng.manifests.feature.group" version="1.1.0.v20130503-1908"/>
-<unit id="org.eclipse.emf.cdo.releng.version.feature.group" version="1.1.0.v20130601-1611"/>
-<unit id="org.eclipse.emf.cdo.releng.version.sdk.feature.group" version="1.1.0.v20130612-0849"/>
-<unit id="org.eclipse.emf.cdo.releng.tasks.feature.group" version="1.1.0.v20130504-1740"/>
-<unit id="org.eclipse.emf.cdo.releng.winexplorer.feature.group" version="1.1.0.v20130503-1908"/>
-<unit id="org.eclipse.emf.cdo.releng.gitbash.feature.group" version="1.1.0.v20130529-1207"/>
-<unit id="org.eclipse.emf.cdo.releng.buildstamp.feature.group" version="1.1.0.v20130503-1908"/>
-<unit id="org.eclipse.emf.cdo.releng.help.feature.group" version="4.2.0.v20130612-0849"/>
+<unit id="org.eclipse.emf.cdo.explorer.product.feature.group" version="4.1.100.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.feature.group" version="4.2.1.v20130913-0613"/>
+<unit id="org.eclipse.emf.cdo.migrator.feature.group" version="4.2.0.v20130503-1908"/>
 <unit id="org.eclipse.emf.cdo.releng.apireports.feature.group" version="1.0.0.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.releng.buildstamp.feature.group" version="1.1.0.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.releng.gitbash.feature.group" version="1.1.0.v20130529-1207"/>
+<unit id="org.eclipse.emf.cdo.releng.help.feature.group" version="4.2.0.v20130612-0849"/>
+<unit id="org.eclipse.emf.cdo.releng.launches.feature.group" version="1.1.0.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.releng.manifests.feature.group" version="1.1.0.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.releng.projectcopy.feature.group" version="1.1.0.v20130503-1908"/>
 <unit id="org.eclipse.emf.cdo.releng.relativepaths.feature.group" version="1.1.0.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.releng.tasks.feature.group" version="1.1.0.v20130504-1740"/>
+<unit id="org.eclipse.emf.cdo.releng.version.doc.feature.group" version="1.1.0.v20130612-0849"/>
+<unit id="org.eclipse.emf.cdo.releng.version.feature.group" version="1.1.0.v20130601-1611"/>
+<unit id="org.eclipse.emf.cdo.releng.version.headless.feature.group" version="1.1.0.v20130601-1611"/>
+<unit id="org.eclipse.emf.cdo.releng.version.sdk.feature.group" version="1.1.0.v20130612-0849"/>
 <unit id="org.eclipse.emf.cdo.releng.version.tests.feature.group" version="1.1.0.v20130503-1908"/>
 <unit id="org.eclipse.emf.cdo.releng.windowtitle.feature.group" version="1.1.0.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.releng.winexplorer.feature.group" version="1.1.0.v20130503-1908"/>
 <unit id="org.eclipse.emf.cdo.releng.workingsets.feature.group" version="1.1.0.v20130503-1908"/>
-<unit id="org.eclipse.emf.cdo.releng.launches.feature.group" version="1.1.0.v20130503-1908"/>
+<unit id="org.eclipse.emf.cdo.sdk.feature.group" version="4.2.1.v20130913-0613"/>
+<unit id="org.eclipse.emf.cdo.server.db.feature.group" version="4.2.1.v20130811-0503"/>
+<unit id="org.eclipse.emf.cdo.server.db4o.feature.group" version="4.2.0.v20130601-1611"/>
+<unit id="org.eclipse.emf.cdo.server.feature.group" version="4.2.1.v20130913-0613"/>
+<unit id="org.eclipse.emf.cdo.server.hibernate.feature.group" version="4.2.1.v20130911-1235"/>
+<unit id="org.eclipse.emf.cdo.server.lissome.feature.group" version="4.2.1.v20130810-1101"/>
+<unit id="org.eclipse.emf.cdo.server.mongodb.feature.group" version="4.2.0.v20130601-1611"/>
+<unit id="org.eclipse.emf.cdo.server.objectivity.feature.group" version="4.2.0.v20130811-0646"/>
+<unit id="org.eclipse.emf.cdo.server.product.feature.group" version="4.1.100.v20130531-1716"/>
+<unit id="org.eclipse.emf.cdo.tests.feature.group" version="4.2.1.v20130913-0613"/>
+<unit id="org.eclipse.emf.cdo.tests.hibernate.feature.group" version="4.2.1.v20130911-1235"/>
+<unit id="org.eclipse.net4j.db.derby.feature.group" version="4.2.0.v20130601-1611"/>
+<unit id="org.eclipse.net4j.db.feature.group" version="4.2.1.v20130730-0902"/>
+<unit id="org.eclipse.net4j.db.h2.feature.group" version="4.2.0.v20130601-1611"/>
+<unit id="org.eclipse.net4j.db.hsqldb.feature.group" version="4.2.0.v20130601-1611"/>
+<unit id="org.eclipse.net4j.db.mysql.feature.group" version="4.2.0.v20130601-1611"/>
 <unit id="org.eclipse.net4j.db.oracle.feature.group" version="1.0.0.v20130515-0529"/>
 <unit id="org.eclipse.net4j.db.postgresql.feature.group" version="4.2.0.v20130601-1611"/>
-<unit id="org.eclipse.net4j.db.feature.group" version="4.2.1.v20130730-0902"/>
-<unit id="org.eclipse.net4j.db.mysql.feature.group" version="4.2.0.v20130601-1611"/>
-<unit id="org.eclipse.net4j.db.derby.feature.group" version="4.2.0.v20130601-1611"/>
-<unit id="org.eclipse.net4j.db.hsqldb.feature.group" version="4.2.0.v20130601-1611"/>
-<unit id="org.eclipse.net4j.db.h2.feature.group" version="4.2.0.v20130601-1611"/>
-<unit id="org.eclipse.net4j.ui.feature.group" version="4.2.0.v20130601-1611"/>
 <unit id="org.eclipse.net4j.defs.feature.group" version="4.2.1.v20130806-0658"/>
-<unit id="org.eclipse.net4j.examples.feature.group" version="4.2.0.v20130601-0759"/>
-<unit id="org.eclipse.net4j.util.ui.feature.group" version="4.2.0.v20130730-0902"/>
 <unit id="org.eclipse.net4j.doc.feature.group" version="4.2.0.v20130612-0849"/>
+<unit id="org.eclipse.net4j.examples.feature.group" version="4.2.0.v20130601-0759"/>
 <unit id="org.eclipse.net4j.feature.group" version="4.2.1.v20130806-0658"/>
-<unit id="org.eclipse.net4j.tests.feature.group" version="4.2.0.v20130503-1908"/>
-<unit id="org.eclipse.net4j.util.feature.group" version="4.2.0.v20130601-1611"/>
 <unit id="org.eclipse.net4j.sdk.feature.group" version="4.2.1.v20130806-0658"/>
+<unit id="org.eclipse.net4j.tests.feature.group" version="4.2.0.v20130503-1908"/>
+<unit id="org.eclipse.net4j.ui.feature.group" version="4.2.0.v20130601-1611"/>
+<unit id="org.eclipse.net4j.util.feature.group" version="4.2.0.v20130601-1611"/>
+<unit id="org.eclipse.net4j.util.ui.feature.group" version="4.2.0.v20130730-0902"/>
+<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>
 </target>
diff --git a/plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/common/IResourceSetProcessor.java b/plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/common/IResourceSetProcessor.java
new file mode 100644
index 0000000..350a6b3
--- /dev/null
+++ b/plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/common/IResourceSetProcessor.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2017 BMW Car IT, TUM, EclipseSource Muenchen GmbH, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.edapt.common;
+
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Generic interface for a processor which is supposed to work with {@link ResourceSet ResourceSets}.
+ *
+ * @since 1.3
+ *
+ */
+public interface IResourceSetProcessor {
+
+	/**
+	 * @param resourceSet the {@link ResourceSet} to process
+	 */
+	void process(ResourceSet resourceSet);
+
+}
diff --git a/plugins/org.eclipse.emf.edapt.history.cdo/src/org/eclipse/emf/edapt/cdo/migration/execution/CDOMigrationReconstructor.java b/plugins/org.eclipse.emf.edapt.history.cdo/src/org/eclipse/emf/edapt/cdo/migration/execution/CDOMigrationReconstructor.java
index c548584..03af5c5 100644
--- a/plugins/org.eclipse.emf.edapt.history.cdo/src/org/eclipse/emf/edapt/cdo/migration/execution/CDOMigrationReconstructor.java
+++ b/plugins/org.eclipse.emf.edapt.history.cdo/src/org/eclipse/emf/edapt/cdo/migration/execution/CDOMigrationReconstructor.java
@@ -23,7 +23,7 @@
 		IProgressMonitor monitor, IClassLoader classLoader,
 		ValidationLevel level, IResourceSetFactory resourceSetFactory) {
 		super(modelURIs, sourceRelease, targetRelease, monitor, classLoader,
-			level, resourceSetFactory);
+			level, resourceSetFactory, null);
 	}
 
 	/** Load the model before migration. */
diff --git a/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/internal/migration/execution/internal/MigrationReconstructor.java b/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/internal/migration/execution/internal/MigrationReconstructor.java
index 79a7445..73adeb5 100644
--- a/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/internal/migration/execution/internal/MigrationReconstructor.java
+++ b/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/internal/migration/execution/internal/MigrationReconstructor.java
@@ -26,6 +26,7 @@
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.edapt.common.IResourceSetFactory;
+import org.eclipse.emf.edapt.common.IResourceSetProcessor;
 import org.eclipse.emf.edapt.declaration.OperationImplementation;
 import org.eclipse.emf.edapt.history.reconstruction.EcoreReconstructorSwitchBase;
 import org.eclipse.emf.edapt.history.reconstruction.FinishedException;
@@ -112,11 +113,13 @@
 	/** Factory to create {@link ResourceSet}s for custom serialization. */
 	protected IResourceSetFactory resourceSetFactory;
 
+	private final IResourceSetProcessor postLoadProcessor;
+
 	/** Constructor. */
 	public MigrationReconstructor(List<URI> modelURIs, Release sourceRelease,
 		Release targetRelease, IProgressMonitor monitor,
 		IClassLoader classLoader, ValidationLevel level,
-		IResourceSetFactory resourceSetFactory) {
+		IResourceSetFactory resourceSetFactory, IResourceSetProcessor postLoadProcessor) {
 		this.modelURIs = modelURIs;
 		this.sourceRelease = sourceRelease;
 		this.targetRelease = targetRelease;
@@ -124,6 +127,7 @@
 		this.classLoader = classLoader;
 		this.level = level;
 		this.resourceSetFactory = resourceSetFactory;
+		this.postLoadProcessor = postLoadProcessor;
 	}
 
 	/** {@inheritDoc} */
@@ -183,7 +187,7 @@
 		metamodel.refreshCaches();
 		try {
 			final Model model = Persistency.loadModel(modelURIs, metamodel,
-				resourceSetFactory);
+				resourceSetFactory, postLoadProcessor);
 			repository = MigrationFactory.eINSTANCE.createRepository();
 			repository.setMetamodel(metamodel);
 			repository.setModel(model);
diff --git a/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/migration/execution/Migrator.java b/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/migration/execution/Migrator.java
index d583488..e2cd536 100644
--- a/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/migration/execution/Migrator.java
+++ b/plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/migration/execution/Migrator.java
@@ -31,6 +31,7 @@
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.edapt.common.IResourceSetFactory;
+import org.eclipse.emf.edapt.common.IResourceSetProcessor;
 import org.eclipse.emf.edapt.declaration.LibraryImplementation;
 import org.eclipse.emf.edapt.declaration.OperationImplementation;
 import org.eclipse.emf.edapt.history.reconstruction.EcoreForwardReconstructor;
@@ -84,6 +85,8 @@
 	/** Validation level. */
 	private ValidationLevel level = ValidationLevel.CUSTOM_MIGRATION;
 
+	private IResourceSetProcessor postLoadProcessor;
+
 	/** Constructor. */
 	public Migrator(URI historyURI, IClassLoader classLoader)
 		throws MigrationException {
@@ -165,7 +168,7 @@
 	 */
 	public void migrateAndSave(List<URI> modelURIs, Release sourceRelease,
 		Release targetRelease, IProgressMonitor monitor)
-			throws MigrationException {
+		throws MigrationException {
 		this.migrateAndSave(modelURIs, sourceRelease, targetRelease, monitor, null);
 	}
 
@@ -186,7 +189,7 @@
 	 */
 	public void migrateAndSave(List<URI> modelURIs, Release sourceRelease,
 		Release targetRelease, IProgressMonitor monitor, Map<String, Object> options)
-			throws MigrationException {
+		throws MigrationException {
 		final Model model = migrate(modelURIs, sourceRelease, targetRelease, monitor);
 		if (model == null) {
 			throw new MigrationException("Model is up-to-date", null); //$NON-NLS-1$
@@ -245,7 +248,7 @@
 	 */
 	private Model migrate(List<URI> modelURIs, Release sourceRelease,
 		Release targetRelease, IProgressMonitor monitor)
-			throws MigrationException {
+		throws MigrationException {
 		try {
 			if (targetRelease == null) {
 				targetRelease = getLatestRelease();
@@ -260,7 +263,7 @@
 				URI.createFileURI("test")); //$NON-NLS-1$
 			final MigrationReconstructor migrationReconstructor = new MigrationReconstructor(
 				modelURIs, sourceRelease, targetRelease, monitor,
-				classLoader, level, resourceSetFactory);
+				classLoader, level, resourceSetFactory, postLoadProcessor);
 			reconstructor.addReconstructor(migrationReconstructor);
 
 			reconstructor.reconstruct(targetRelease, false);
@@ -429,4 +432,24 @@
 	public IResourceSetFactory getResourceSetFactory() {
 		return resourceSetFactory;
 	}
+
+	/**
+	 * The given processor will be called after the outdated model was loaded. It will be called before Edapt translates
+	 * the dynamic EMF model into its internal representation required for the migration. Hence this processor may be
+	 * used to modify the to be migrated model before the actual migrations starts.
+	 *
+	 * @since 1.3
+	 */
+	public void setPostLoadModelProcessor(IResourceSetProcessor postLoadProcessor) {
+		this.postLoadProcessor = postLoadProcessor;
+	}
+
+	/**
+	 * The post load model processor.
+	 * 
+	 * @since 1.3
+	 */
+	public IResourceSetProcessor getPostLoadModelProcessor() {
+		return postLoadProcessor;
+	}
 }
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java
index b8306db..13db02f 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java
@@ -127,7 +127,7 @@
 				final Metamodel metamodel = migrator.getMetamodel(r);
 				try {
 					final Model model = Persistency.loadModel(modelURIs, metamodel,
-						migrator.getResourceSetFactory());
+						migrator.getResourceSetFactory(), migrator.getPostLoadModelProcessor());
 					model.checkConformance();
 				} catch (final Exception e) {
 					i.remove();
diff --git a/plugins/org.eclipse.emf.edapt.migration/src/org/eclipse/emf/edapt/internal/migration/internal/Persistency.java b/plugins/org.eclipse.emf.edapt.migration/src/org/eclipse/emf/edapt/internal/migration/internal/Persistency.java
index 893bcc1..2f8568a 100644
--- a/plugins/org.eclipse.emf.edapt.migration/src/org/eclipse/emf/edapt/internal/migration/internal/Persistency.java
+++ b/plugins/org.eclipse.emf.edapt.migration/src/org/eclipse/emf/edapt/internal/migration/internal/Persistency.java
@@ -23,6 +23,7 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.edapt.common.IResourceSetFactory;
+import org.eclipse.emf.edapt.common.IResourceSetProcessor;
 import org.eclipse.emf.edapt.internal.common.ResourceUtils;
 import org.eclipse.emf.edapt.spi.migration.Metamodel;
 import org.eclipse.emf.edapt.spi.migration.MetamodelResource;
@@ -90,24 +91,27 @@
 
 	/** Load model based on {@link URI} for model and metamodel. */
 	public static Model loadModel(URI modelURI, URI metamodelURI,
-		IResourceSetFactory resourceSetFactory) throws IOException {
+		IResourceSetFactory resourceSetFactory, IResourceSetProcessor postLoadProcessor) throws IOException {
 		final Metamodel metamodel = loadMetamodel(metamodelURI);
-		final Model model = loadModel(modelURI, metamodel, resourceSetFactory);
+		final Model model = loadModel(modelURI, metamodel, resourceSetFactory, postLoadProcessor);
 		return model;
 	}
 
 	/** Load model based on {@link URI} and metamodel. */
 	public static Model loadModel(URI modelURI, Metamodel metamodel,
-		IResourceSetFactory resourceSetFactory) throws IOException {
+		IResourceSetFactory resourceSetFactory, IResourceSetProcessor postLoadProcessor) throws IOException {
 		return loadModel(Collections.singletonList(modelURI), metamodel,
-			resourceSetFactory);
+			resourceSetFactory, postLoadProcessor);
 	}
 
 	/** Load model based on a set of {@link URI} and metamodel. */
 	public static Model loadModel(List<URI> modelURIs, Metamodel metamodel,
-		IResourceSetFactory resourceSetFactory) throws IOException {
+		IResourceSetFactory resourceSetFactory, IResourceSetProcessor postLoadProcessor) throws IOException {
 		final ResourceSet resourceSet = ResourceUtils.loadResourceSet(modelURIs,
 			metamodel.getEPackages(), resourceSetFactory);
+		if (postLoadProcessor != null) {
+			postLoadProcessor.process(resourceSet);
+		}
 		final ForwardConverter fConverter = new ForwardConverter();
 		final Model model = fConverter.convert(resourceSet);
 		model.setMetamodel(metamodel);
@@ -116,9 +120,9 @@
 
 	/** Load model based on file name and metamodel. */
 	public static Model loadModel(String fileName, Metamodel metamodel,
-		IResourceSetFactory resourceSetFactory) throws IOException {
+		IResourceSetFactory resourceSetFactory, IResourceSetProcessor postLoadProcessor) throws IOException {
 		return loadModel(URI.createFileURI(fileName), metamodel,
-			resourceSetFactory);
+			resourceSetFactory, postLoadProcessor);
 	}
 
 	/** Save model based on {@link URI}. */
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 138eae8..e95d483 100644
--- a/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
@@ -11,7 +11,9 @@
  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.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.0";x-internal:="true",
  org.eclipse.emf.edapt.tests.history;version="1.3.0";x-internal:="true",
  org.eclipse.emf.edapt.tests.migration;version="1.3.0";x-internal:="true",
diff --git a/tests/org.eclipse.emf.edapt.tests/pom.xml b/tests/org.eclipse.emf.edapt.tests/pom.xml
index dd779d7..d6d952f 100644
--- a/tests/org.eclipse.emf.edapt.tests/pom.xml
+++ b/tests/org.eclipse.emf.edapt.tests/pom.xml
@@ -28,6 +28,7 @@
 							<excludes>
 								<exclude>**/GMFLifecycleTest.java</exclude>
 								<exclude>**/FactoryHelperTest.java</exclude>
+								<exclude>**/PersistencyTest.java</exclude>
 							</excludes>
 						</configuration>
 						<goals>
@@ -45,6 +46,7 @@
 					<useUIThread>false</useUIThread>
 					<includes>
 						<include>**/FactoryHelperTest.java</include>
+						<include>**/PersistencyTest.java</include>
 					</includes>
 				</configuration>
 			</plugin>
diff --git a/tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/ConverterTest.java b/tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/ConverterTest.java
index 5a14d9a..f0ea5f3 100644
--- a/tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/ConverterTest.java
+++ b/tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/ConverterTest.java
@@ -16,9 +16,6 @@
 import java.util.List;
 import java.util.Map;
 
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
@@ -37,6 +34,9 @@
 import org.eclipse.emf.edapt.spi.migration.Model;
 import org.eclipse.emf.edapt.spi.migration.ModelResource;
 
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
 /**
  * Tests for {@link ForwardConverter} and {@link BackwardConverter}
  *
@@ -66,7 +66,7 @@
 
 		final Metamodel metamodel = Persistency.loadMetamodel(metamodelURI);
 		final Model model = Persistency.loadModel(model1URI, metamodel,
-			new ResourceSetFactoryImpl());
+			new ResourceSetFactoryImpl(), null);
 		model.validate();
 
 		final URIMapper mapper = new URIMapper() {
diff --git a/tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/PersistencyTest.java b/tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/PersistencyTest.java
new file mode 100644
index 0000000..c97f642
--- /dev/null
+++ b/tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/PersistencyTest.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2017 BMW Car IT, TUM, EclipseSource Muenchen GmbH, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.edapt.tests.migration;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.ECollections;
+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.common.IResourceSetFactory;
+import org.eclipse.emf.edapt.common.IResourceSetProcessor;
+import org.eclipse.emf.edapt.internal.migration.internal.Persistency;
+import org.eclipse.emf.edapt.spi.migration.Metamodel;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+@SuppressWarnings("restriction")
+public class PersistencyTest {
+
+	@Test
+	public void testPostLoadProcessor() throws IOException {
+		/* setup */
+		final List<URI> modelURIs = Collections.emptyList();
+		final Metamodel metamodel = Mockito.mock(Metamodel.class);
+		final ResourceSet resourceSet = Mockito.mock(ResourceSet.class);
+		Mockito.doReturn(ECollections.<Resource> emptyEList()).when(resourceSet).getResources();
+		final IResourceSetFactory resourceSetFactory = Mockito.mock(IResourceSetFactory.class);
+		Mockito.doReturn(resourceSet).when(resourceSetFactory).createResourceSet();
+		final IResourceSetProcessor postLoadProcessor = Mockito.mock(IResourceSetProcessor.class);
+
+		/* act */
+		Persistency.loadModel(modelURIs, metamodel, resourceSetFactory, postLoadProcessor);
+
+		/* verify */
+		Mockito.verify(postLoadProcessor, Mockito.times(1)).process(resourceSet);
+
+	}
+
+}