Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Faltermeier2017-08-09 15:13:56 +0000
committerJohannes Faltermeier2017-08-10 09:39:29 +0000
commitea15e8a1396190767117e1b5f6277b5ae361a37e (patch)
tree723f335256df4b11a01affa087534e8e0c03535b
parenta3a02152242a09beae62da04fc2d28bb6ce09eb2 (diff)
downloadorg.eclipse.emf.edapt-ea15e8a1396190767117e1b5f6277b5ae361a37e.tar.gz
org.eclipse.emf.edapt-ea15e8a1396190767117e1b5f6277b5ae361a37e.tar.xz
org.eclipse.emf.edapt-ea15e8a1396190767117e1b5f6277b5ae361a37e.zip
Bug 520819 - Introduce post load / pre migration processor1.3.0_MS1
* Add processor * Adjust targets (add mockito, adjust from neon to oxygen) Change-Id: I2e286ce466479db398ce4b2230205aefb929a6ef Signed-off-by: Johannes Faltermeier <jfaltermeier@eclipsesource.com>
-rw-r--r--builds/org.eclipse.emf.edapt.releng.target/edapt.target6
-rw-r--r--builds/org.eclipse.emf.edapt.releng.target/edapt.tpd3
-rw-r--r--builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.target (renamed from builds/org.eclipse.emf.edapt.releng.target/edapt_neon.target)28
-rw-r--r--builds/org.eclipse.emf.edapt.releng.target/edapt_oxygen.tpd (renamed from builds/org.eclipse.emf.edapt.releng.target/edapt_neon.tpd)7
-rw-r--r--builds/org.eclipse.emf.edapt.releng.target/edapt_with_cdo.target199
-rw-r--r--plugins/org.eclipse.emf.edapt.common/src/org/eclipse/emf/edapt/common/IResourceSetProcessor.java29
-rw-r--r--plugins/org.eclipse.emf.edapt.history.cdo/src/org/eclipse/emf/edapt/cdo/migration/execution/CDOMigrationReconstructor.java2
-rw-r--r--plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/internal/migration/execution/internal/MigrationReconstructor.java8
-rw-r--r--plugins/org.eclipse.emf.edapt.history/src/org/eclipse/emf/edapt/migration/execution/Migrator.java31
-rw-r--r--plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java2
-rw-r--r--plugins/org.eclipse.emf.edapt.migration/src/org/eclipse/emf/edapt/internal/migration/internal/Persistency.java18
-rw-r--r--tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF4
-rw-r--r--tests/org.eclipse.emf.edapt.tests/pom.xml2
-rw-r--r--tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/ConverterTest.java8
-rw-r--r--tests/org.eclipse.emf.edapt.tests/src/org/eclipse/emf/edapt/tests/migration/PersistencyTest.java51
15 files changed, 265 insertions, 133 deletions
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 @@ location "http://download.eclipse.org/tools/orbit/downloads/drops/R2013082706493
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
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
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.source.feature.group
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 @@ location "http://download.eclipse.org/tools/orbit/downloads/drops/R2013082706493
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"/>
+<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.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.platform.ide" version="4.3.0.I20130605-2000"/>
-<unit id="org.eclipse.rcp.feature.group" version="4.3.0.v20130605-2000"/>
+<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"/>
+<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.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.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.xsd.feature.group" version="2.9.1.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.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"/>
-<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.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.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.oda.sdk.feature.group" version="1.2.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.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.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.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.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.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.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.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.releng.apireports.feature.group" version="1.0.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.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.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.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.hsqldb.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.ui.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.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.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.sdk.feature.group" version="4.2.1.v20130806-0658"/>
+<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 @@ public class CDOMigrationReconstructor extends MigrationReconstructor {
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.EStructuralFeature;
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 @@ public class MigrationReconstructor extends ReconstructorBase {
/** 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 @@ public class MigrationReconstructor extends ReconstructorBase {
this.classLoader = classLoader;
this.level = level;
this.resourceSetFactory = resourceSetFactory;
+ this.postLoadProcessor = postLoadProcessor;
}
/** {@inheritDoc} */
@@ -183,7 +187,7 @@ public class MigrationReconstructor extends ReconstructorBase {
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.EPackage;
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 @@ public class Migrator {
/** 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 class Migrator {
*/
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 class Migrator {
*/
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 @@ public class Migrator {
*/
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 @@ public class Migrator {
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 class Migrator {
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 @@ public abstract class MigratorHandlerBase extends AbstractHandler {
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.Resource;
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 @@ public class Persistency {
/** 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 @@ public class Persistency {
/** 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 @@ Require-Bundle: org.eclipse.emf.ecore.xmi;bundle-version="[2.9.1,3.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.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.IdentityHashMap;
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.Metamodel;
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 @@ public class ConverterTest extends TestCase {
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);
+
+ }
+
+}

Back to the top