Merge commit 'cde2350df5bfcf8ed8cce5f7df978a25ca6829b7'

Change-Id: Idcbfbcb65e518a64ff0f4dbc3a618ca37cca1e4c
diff --git a/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/META-INF/MANIFEST.MF
index ca262fa..e54021d 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.application.e4.fx/META-INF/MANIFEST.MF
@@ -6,18 +6,18 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.application.e4.fx;version="1.9.0";x-internal:=true
 Require-Bundle: org.eclipse.e4.ui.model.workbench;bundle-version="[1.1.100,2.0.0)",
-  org.eclipse.e4.core.di.annotations;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.e4.ui.di;bundle-version="[1.1.0,2.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
-  org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,1.8.0)",
-  org.eclipse.emf.ecp.controls.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.emfstore.fx.util;bundle-version="[1.8.0,1.9.0)"
+ org.eclipse.e4.core.di.annotations;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.e4.ui.di;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.7.0,1.8.0)",
+ org.eclipse.emf.ecp.controls.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.fx.util;bundle-version="[1.8.0,1.9.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: javax.annotation;version="1.0.0",
-  javax.inject;version="1.0.0"
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.application.e4.fx
+Import-Package: javax.annotation;version="1.0.0",
+ javax.inject;version="1.0.0"
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/javafx/org.eclipse.emf.ecp.controls.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.controls.fx/META-INF/MANIFEST.MF
index 7b16b00..bf73db5 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.controls.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.controls.fx/META-INF/MANIFEST.MF
@@ -6,22 +6,22 @@
 Bundle-Activator: org.eclipse.emf.ecp.controls.internal.fx.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.controls.fx.util;x-internal:=true,
-  org.eclipse.emf.ecp.controls.internal.fx;x-internal:=true,
-  org.eclipse.emf.ecp.controls.renderer.fx
+ org.eclipse.emf.ecp.controls.internal.fx;x-internal:=true,
+ org.eclipse.emf.ecp.controls.renderer.fx
 Require-Bundle: org.eclipse.core.runtime,
-  org.eclipse.emf.ecp.edit;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.core.databinding.property,
-  org.eclipse.fx.core.databinding,
-  org.eclipse.emf.databinding,
-  org.eclipse.emf.ecore,
-  org.eclipse.fx.emf.edit.ui,
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.edit,
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.16.0,1.17.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property,
+ org.eclipse.fx.core.databinding,
+ org.eclipse.emf.databinding,
+ org.eclipse.emf.ecore,
+ org.eclipse.fx.emf.edit.ui,
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit,
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: com.ibm.icu.text;version="50.0.0"
 Bundle-ActivationPolicy: lazy
+Import-Package: com.ibm.icu.text;version="50.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.controls.fx
diff --git a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF
index 9260807..3f8c298 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.util.e4.fx/META-INF/MANIFEST.MF
@@ -6,9 +6,9 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.util.e4.fx;version="1.9.0"
 Require-Bundle: org.eclipse.e4.ui.workbench,
-  org.eclipse.e4.ui.model.workbench,
-  org.eclipse.e4.core.contexts,
-  org.eclipse.emf.emfstore.client
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.core.contexts,
+ org.eclipse.emf.emfstore.client
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.util.e4.fx
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/META-INF/MANIFEST.MF
index 3e35317..eacf149 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.group.fx/META-INF/MANIFEST.MF
@@ -6,11 +6,11 @@
 Bundle-Activator: org.eclipse.emf.ecp.view.group.fx.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.group.fx;version="1.9.0"
-Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.16.0,1.17.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.osgi.framework;version="1.3.0"
 Bundle-ActivationPolicy: lazy
+Import-Package: org.osgi.framework;version="1.3.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.fx
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/META-INF/MANIFEST.MF
index d607f70..0c13a96 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.horizontal.fx/META-INF/MANIFEST.MF
@@ -7,10 +7,10 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.horizontal.fx;version="1.9.0"
 Require-Bundle: org.eclipse.core.runtime,
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.16.0,1.17.0)"
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.horizontal.fx
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/META-INF/MANIFEST.MF
index 5be752f..5393e10 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.label.fx/META-INF/MANIFEST.MF
@@ -4,8 +4,8 @@
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.fx;singleton:=true
 Bundle-Version: 1.9.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.16.0,1.17.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.label.fx
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/META-INF/MANIFEST.MF
index 6c4ab75..744aca3 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.model.fx/META-INF/MANIFEST.MF
@@ -6,19 +6,19 @@
 Bundle-Activator: org.eclipse.emf.ecp.view.model.internal.fx.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.model.fx;version="1.9.0",
-  org.eclipse.emf.ecp.view.model.internal.fx;version="1.9.0"
+ org.eclipse.emf.ecp.view.model.internal.fx;version="1.9.0"
 Require-Bundle: org.eclipse.core.runtime,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.16.0,1.17.0)";visibility:=reexport,
-  org.eclipse.fx.core.databinding;bundle-version="1.0.0",
-  org.eclipse.core.databinding.property;bundle-version="1.4.200",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.16.0,1.17.0)";visibility:=reexport,
-  org.eclipse.emfforms.common;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.edit,
-  org.eclipse.emf.databinding.edit
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.fx.core.databinding;bundle-version="1.0.0",
+ org.eclipse.core.databinding.property;bundle-version="1.4.200",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit,
+ org.eclipse.emf.databinding.edit
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.fx.core.databinding
 Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.fx.core.databinding
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.fx
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/META-INF/MANIFEST.MF
index cb38fca..cb2dd40 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.treemasterdetail.fx/META-INF/MANIFEST.MF
@@ -6,15 +6,15 @@
 Bundle-Activator: org.eclipse.emf.ecp.view.treemasterdetail.fx.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.fx;version="1.9.0"
-Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.15.0,2.0.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.15.0,2.0.0)",
-  org.eclipse.fx.emf.edit.ui;bundle-version="[2.0.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="2.9.0",
-  org.eclipse.emf.ecp.util.fx;bundle-version="[1.15.0,2.0.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.15.0,2.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.15.0,2.0.0)",
-  org.eclipse.fx.ui.controls;bundle-version="[2.0.0,3.0.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.fx.emf.edit.ui;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="2.9.0",
+ org.eclipse.emf.ecp.util.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.fx.ui.controls;bundle-version="[2.0.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.osgi.framework;version="1.3.0"
 Bundle-ActivationPolicy: lazy
+Import-Package: org.osgi.framework;version="1.3.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.fx
diff --git a/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/META-INF/MANIFEST.MF
index 291199a..749e954 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.view.vertical.fx/META-INF/MANIFEST.MF
@@ -7,10 +7,10 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.view.vertical.fx;version="1.9.0"
 Require-Bundle: org.eclipse.core.runtime,
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.16.0,1.17.0)"
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.vertical.fx
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/javafx/org.eclipse.emf.ecp.viewmodel.fx/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.ecp.viewmodel.fx/META-INF/MANIFEST.MF
index 8c4f3b5..1c7721a 100644
--- a/bundles/javafx/org.eclipse.emf.ecp.viewmodel.fx/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.ecp.viewmodel.fx/META-INF/MANIFEST.MF
@@ -4,6 +4,6 @@
 Bundle-SymbolicName: org.eclipse.emf.ecp.viewmodel.fx;singleton:=true
 Bundle-Version: 1.7.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.16.0,1.17.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.viewmodel.fx
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/META-INF/MANIFEST.MF b/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/META-INF/MANIFEST.MF
index 3367b94..fe1284d 100644
--- a/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/META-INF/MANIFEST.MF
+++ b/bundles/javafx/org.eclipse.emf.emfstore.fx.projects/META-INF/MANIFEST.MF
@@ -7,16 +7,16 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.emfstore.fx.internal.projects;version="1.9.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.emfstore.client;bundle-version="[1.3.0,2.0.0]",
-  org.eclipse.fx.emf.edit.ui;bundle-version="[2.0.0,3.0.0)",
-  org.eclipse.emf.edit,
-  org.eclipse.emf.ecore,
-  org.eclipse.emf.ecp.util.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.e4.ui.workbench,
-  org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.fx.ui.controls;bundle-version="[2.0.0,3.0.0)"
+ org.eclipse.fx.emf.edit.ui;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.edit,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecp.util.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.emf.ecp.util.e4.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.fx.ui.controls;bundle-version="[2.0.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: javax.annotation;version="1.1.0",
-  javax.inject;version="1.0.0",
-  org.osgi.framework;version="1.3.0"
 Bundle-ActivationPolicy: lazy
+Import-Package: javax.annotation;version="1.1.0",
+ javax.inject;version="1.0.0",
+ org.osgi.framework;version="1.3.0"
 Automatic-Module-Name: org.eclipse.emf.emfstore.fx.projects
diff --git a/bundles/org.eclipse.emf.ecp.application.e3/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.application.e3/META-INF/MANIFEST.MF
index e0f6a11..55f353e 100644
--- a/bundles/org.eclipse.emf.ecp.application.e3/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.application.e3/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Demo Application Eclipse 3.x
 Bundle-SymbolicName: org.eclipse.emf.ecp.application.e3;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.application3x.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.application3x;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.application3x;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.e3;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.ui.ide.application;bundle-version="[1.0.0,2.0.0)"
+ org.eclipse.emf.ecp.ui.e3;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.ui.ide.application;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.application.e3
diff --git a/bundles/org.eclipse.emf.ecp.application.e3/pom.xml b/bundles/org.eclipse.emf.ecp.application.e3/pom.xml
index ac1e327..2c2b6ce 100644
--- a/bundles/org.eclipse.emf.ecp.application.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.application.e3/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.application.e3</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.application.e4/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.application.e4/META-INF/MANIFEST.MF
index 70e6de2..00d05d3 100644
--- a/bundles/org.eclipse.emf.ecp.application.e4/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.application.e4/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP e4 Application
 Bundle-SymbolicName: org.eclipse.emf.ecp.application.e4;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.application.e4.editor;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.e4;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
-  org.eclipse.e4.ui.model.workbench;bundle-version="[0.10.0,3.0.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.equinox.event;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.application.e4.editor;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.e4;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
+ org.eclipse.e4.ui.model.workbench;bundle-version="[0.10.0,3.0.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.equinox.event;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.application.e4
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.2.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.2.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.application.e4/pom.xml b/bundles/org.eclipse.emf.ecp.application.e4/pom.xml
index d1bc98f..47c96a0 100644
--- a/bundles/org.eclipse.emf.ecp.application.e4/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.application.e4/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.application.e4</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.cdo.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.cdo.core/META-INF/MANIFEST.MF
index a789f83..7549a21 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.cdo.core/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP CDO Model Repository Core
 Bundle-SymbolicName: org.eclipse.emf.ecp.cdo.core;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.cdo.internal.core.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.cdo.internal.core;version="1.19.0";x-friends:="org.eclipse.emf.ecp.cdo.ui"
+Export-Package: org.eclipse.emf.ecp.cdo.internal.core;version="1.20.0";x-friends:="org.eclipse.emf.ecp.cdo.ui"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.cdo.net4j;bundle-version="[4.1.0,5.0.0)",
-  org.eclipse.emf.cdo.workspace;bundle-version="[4.1.0,5.0.0)";visibility:=reexport,
-  org.eclipse.emf.cdo.server.db;bundle-version="[4.1.0,5.0.0)",
-  org.eclipse.net4j.db.h2;bundle-version="[4.0.0,5.0.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.cdo.net4j;bundle-version="[4.1.0,5.0.0)",
+ org.eclipse.emf.cdo.workspace;bundle-version="[4.1.0,5.0.0)";visibility:=reexport,
+ org.eclipse.emf.cdo.server.db;bundle-version="[4.1.0,5.0.0)",
+ org.eclipse.net4j.db.h2;bundle-version="[4.0.0,5.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.h2;version="[1.0.2.qualifier,2.0.0)",
-  org.h2.jdbcx;version="[1.0.2.qualifier,2.0.0)"
+ org.h2.jdbcx;version="[1.0.2.qualifier,2.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.cdo.core
diff --git a/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml b/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml
index fc4978a..827c9dc 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.cdo.core/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.cdo.core</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.cdo.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.cdo.ui/META-INF/MANIFEST.MF
index 531d48f..123f3bd 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.cdo.ui/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: CDO Model Repository ECP UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.cdo.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.cdo.internal.ui.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.cdo.internal.ui;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.cdo.internal.ui.handlers;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.cdo.internal.ui;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.cdo.internal.ui.handlers;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.cdo.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.cdo.edit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.net4j.util.ui;bundle-version="[3.0.0,4.0.0)"
+ org.eclipse.emf.ecp.cdo.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.cdo.edit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.net4j.util.ui;bundle-version="[3.0.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.cdo.ui
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml b/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml
index daeb5bf..523b181 100644
--- a/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.cdo.ui/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.cdo.ui</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.changebroker.provider/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.changebroker.provider/META-INF/MANIFEST.MF
index c78da6d..f656a9c 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker.provider/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.changebroker.provider/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker Provider Bridge
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.provider
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.changebroker.provider.internal;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.changebroker;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
+Export-Package: org.eclipse.emf.ecp.changebroker.provider.internal;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.changebroker;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.changebroker.provider
 Service-Component: OSGI-INF/component.xml
diff --git a/bundles/org.eclipse.emf.ecp.changebroker.provider/pom.xml b/bundles/org.eclipse.emf.ecp.changebroker.provider/pom.xml
index 56e2187..2396dc5 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker.provider/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.changebroker.provider/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.changebroker.provider</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF
index 1861998..143cb63 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.changebroker/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.changebroker.internal;version="1.19.0";x-internal:=true,
- org.eclipse.emf.ecp.changebroker.spi;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.changebroker.internal;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.changebroker.spi;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.changebroker
 Service-Component: OSGI-INF/component.xml
 Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.emf.ecp.changebroker
diff --git a/bundles/org.eclipse.emf.ecp.changebroker/pom.xml b/bundles/org.eclipse.emf.ecp.changebroker/pom.xml
index 0c3a666..0618d91 100644
--- a/bundles/org.eclipse.emf.ecp.changebroker/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.changebroker/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.changebroker</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.common.ui/META-INF/MANIFEST.MF
index 49e25b9..0fc14c9 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.common.ui/META-INF/MANIFEST.MF
@@ -2,27 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.ui
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.common.ui;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.spi.common.ui;version="1.19.0",
-  org.eclipse.emf.ecp.spi.common.ui.composites;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.internal.common.ui;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.spi.common.ui;version="1.20.0",
+ org.eclipse.emf.ecp.spi.common.ui.composites;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.common.ui
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.osgi.util;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0"
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.osgi.util;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.common.ui/pom.xml b/bundles/org.eclipse.emf.ecp.common.ui/pom.xml
index eb1f268..5ed34d8 100644
--- a/bundles/org.eclipse.emf.ecp.common.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.common.ui/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.common.ui</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF
index 6f52c7c..4094b9b 100644
--- a/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.common/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Common
 Bundle-SymbolicName: org.eclipse.emf.ecp.common
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.common.spi;version="1.19.0",
- org.eclipse.emf.ecp.common.spi.asserts;version="1.19.0",
- org.eclipse.emf.ecp.common.spi.cachetree;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.common.spi;version="1.20.0",
+ org.eclipse.emf.ecp.common.spi.asserts;version="1.20.0",
+ org.eclipse.emf.ecp.common.spi.cachetree;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.common
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.common/pom.xml b/bundles/org.eclipse.emf.ecp.common/pom.xml
index f7412bd..57fa50d 100644
--- a/bundles/org.eclipse.emf.ecp.common/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.common/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.common</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/EMFUtils.java b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/EMFUtils.java
index 4e1105e..2e3a2fb 100644
--- a/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/EMFUtils.java
+++ b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/EMFUtils.java
@@ -40,7 +40,8 @@
 
 	/**
 	 * This method looks through all known {@link EPackage}s to find all concrete subclasses for the provided super
-	 * class (abstract classes and interfaces will be ignored).
+	 * class (abstract classes and interfaces will be ignored). If the EClass is EObject, all non abstract and non
+	 * interface classes will be returned.
 	 *
 	 * @param superClass
 	 *            - the class for which to get the subclasses
diff --git a/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/Labelizer.java b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/Labelizer.java
new file mode 100644
index 0000000..80d5f7b
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/Labelizer.java
@@ -0,0 +1,194 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.common.spi;
+
+import java.lang.ref.ReferenceQueue;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.Pool;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+/**
+ * API for obtaining user-friendly labels for {@link EObject}s, intended especially for
+ * {@link Object#toString() debug strings} of objects that encapsulate {@link EObject}s
+ * but that could be appropriate in other end-user (such as UI) scenarios.
+ *
+ * @since 1.20
+ */
+public final class Labelizer {
+
+	private static final Pool<Labelizer> POOL = new PoolImpl();
+
+	private final EPackage ePackage;
+	private AdapterFactory adapterFactory;
+
+	/**
+	 * Initializes me with the package that I support.
+	 */
+	private Labelizer(EPackage ePackage) {
+		super();
+
+		this.ePackage = ePackage;
+	}
+
+	/**
+	 * Initialize my adapter factory.
+	 *
+	 * @return something to dispose when I am no longer needed
+	 */
+	IDisposable initialize() {
+		final Collection<?> types = Arrays.asList(ePackage, IItemLabelProvider.class);
+		final ComposedAdapterFactory.Descriptor desc = ComposedAdapterFactory.Descriptor.Registry.INSTANCE
+			.getDescriptor(types);
+		if (desc != null) {
+			adapterFactory = desc.createAdapterFactory();
+		}
+
+		if (adapterFactory == null) {
+			adapterFactory = new ReflectiveItemProviderAdapterFactory();
+		}
+
+		return adapterFactory instanceof IDisposable
+			? (IDisposable) adapterFactory
+			: Labelizer::pass;
+	}
+
+	private static void pass() {
+		// Nothing to do
+	}
+
+	/**
+	 * Get a labelizer for the given {@code object}.
+	 *
+	 * @param object the objectfor which to get a labelizer
+	 * @return the labelizer
+	 */
+	public static Labelizer get(EObject object) {
+		return get(object.eClass().getEPackage());
+	}
+
+	/**
+	 * Get a labelizer for the given {@code ePackage}.
+	 *
+	 * @param ePackage the package for which to get a labelizer
+	 * @return the labelizer
+	 */
+	public static Labelizer get(EPackage ePackage) {
+		final Labelizer result = new Labelizer(ePackage);
+		return POOL.intern(result);
+	}
+
+	/**
+	 * Obtain a friendly label for the given {@code object}. Where possible,
+	 * this will be based on the label provided by the model's EMF.Edit providers.
+	 *
+	 * @param object an object
+	 * @return a best-effort friendly readable label for it
+	 */
+	public String getLabel(EObject object) {
+		String result = null;
+
+		final IItemLabelProvider labels = (IItemLabelProvider) adapterFactory.adapt(object, IItemLabelProvider.class);
+		if (labels != null) {
+			result = labels.getText(object);
+		}
+
+		if (result == null) {
+			result = String.valueOf(object);
+		}
+
+		return result;
+	}
+
+	@Override
+	public int hashCode() {
+		return ePackage.hashCode();
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		return obj instanceof Labelizer && ((Labelizer) obj).ePackage.equals(ePackage);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Interning labelizer pool implementation.
+	 */
+	@SuppressWarnings("serial")
+	private static final class PoolImpl extends Pool<Labelizer> {
+
+		PoolImpl() {
+			super(8, null, null); // Default object access units and reference queue
+		}
+
+		@Override
+		protected void putEntry(int index, Entry<Labelizer> entry) {
+			// initialize the labelizer now
+			((EntryImpl) entry).initialize();
+
+			super.putEntry(index, entry);
+		}
+
+		@Override
+		protected boolean removeEntry(int index, Entry<Labelizer> entry) {
+			// dispose the labelizer
+			((EntryImpl) entry).dispose();
+
+			return super.removeEntry(index, entry);
+		}
+
+		@Override
+		protected Entry<Labelizer> newExternalEntry(Labelizer object, int hashCode) {
+			return new EntryImpl(this, object, hashCode, externalQueue);
+		}
+
+		//
+		// Nested types
+		//
+
+		/**
+		 * Custom pool entry that tracks the encapsulation of the disposing of the
+		 * labelizer.
+		 */
+		private static final class EntryImpl extends PoolEntry<Labelizer> {
+			private IDisposable disposer;
+
+			EntryImpl(PoolImpl pool, Labelizer labelizer, int hashCode, ReferenceQueue<Object> externalQueue) {
+				super(pool, labelizer, hashCode, externalQueue);
+			}
+
+			void initialize() {
+				disposer = get().initialize();
+			}
+
+			void dispose() {
+				if (disposer != null) {
+					disposer.dispose();
+					disposer = null;
+				}
+			}
+
+		}
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/UniqueSetting.java b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/UniqueSetting.java
index 28bb52a..adf520d 100644
--- a/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/UniqueSetting.java
+++ b/bundles/org.eclipse.emf.ecp.common/src/org/eclipse/emf/ecp/common/spi/UniqueSetting.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Edgar Mueller - initial API and implementation
+ * Christian W. Damus - bug 543190
  ******************************************************************************/
 package org.eclipse.emf.ecp.common.spi;
 
@@ -144,4 +145,16 @@
 	public Setting getSetting() {
 		return ((InternalEObject) eObject).eSetting(structuralFeature);
 	}
+
+	@Override
+	public String toString() {
+		final StringBuilder result = new StringBuilder(64);
+		result.append("UniqueSetting("); //$NON-NLS-1$
+		result.append(structuralFeature == null ? "<null>" : structuralFeature.getName()); //$NON-NLS-1$
+		result.append(" of "); //$NON-NLS-1$
+		result.append(eObject == null ? "<null>" : Labelizer.get(eObject).getLabel(eObject)); //$NON-NLS-1$
+		result.append(')');
+		return result.toString();
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.core.emffilter/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.core.emffilter/META-INF/MANIFEST.MF
index aa36605..ffbd64d 100644
--- a/bundles/org.eclipse.emf.ecp.core.emffilter/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.core.emffilter/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Emffilter
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.emffilter;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.core.emffilter.internal.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.emffilter.internal;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.core.emffilter.internal;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.core.emffilter
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.core.emffilter/pom.xml b/bundles/org.eclipse.emf.ecp.core.emffilter/pom.xml
index 7b49754..238bc89 100644
--- a/bundles/org.eclipse.emf.ecp.core.emffilter/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.core.emffilter/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.core.emffilter</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/META-INF/MANIFEST.MF
index 136f7b2..75d2b4e 100644
--- a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core RAP Sessionprovider
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/component.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.servlet.http;version="0.0.0",
-  org.eclipse.emf.ecp.core.rap;version="[1.19.0,1.20.0)",
-  org.eclipse.rap.rwt;version="0.0.0",
-  org.eclipse.rap.rwt.service;version="3.0.2"
+ org.eclipse.emf.ecp.core.rap;version="[1.20.0,1.21.0)",
+ org.eclipse.rap.rwt;version="0.0.0",
+ org.eclipse.rap.rwt.service;version="3.0.2"
 Automatic-Module-Name: org.eclipse.emf.ecp.core.rap.sessionprovider.rwt
diff --git a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/pom.xml b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/pom.xml
index 4345486..0728a59 100644
--- a/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.core.rap.sessionprovider.rwt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.core.rap.sessionprovider.rwt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.core.rap/META-INF/MANIFEST.MF
index 3dd5d83..21ab136 100644
--- a/bundles/org.eclipse.emf.ecp.core.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.core.rap/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.core.rap.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.core.rap;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.runtime;version="0.0.0",
-  org.eclipse.net4j.util.lifecycle;version="0.0.0",
-  org.eclipse.rap.rwt;version="0.0.0",
-  org.eclipse.rap.rwt.service;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="0.0.0"
+ org.eclipse.net4j.util.lifecycle;version="0.0.0",
+ org.eclipse.rap.rwt;version="0.0.0",
+ org.eclipse.rap.rwt.service;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.core.rap
diff --git a/bundles/org.eclipse.emf.ecp.core.rap/pom.xml b/bundles/org.eclipse.emf.ecp.core.rap/pom.xml
index 2c91024..6c81cd7 100644
--- a/bundles/org.eclipse.emf.ecp.core.rap/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.core.rap/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.core.rap</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.core/META-INF/MANIFEST.MF
index 3304cde..fbbf6d6 100644
--- a/bundles/org.eclipse.emf.ecp.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.core/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core
 Bundle-SymbolicName: org.eclipse.emf.ecp.core;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.core.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core;version="1.19.0",
-  org.eclipse.emf.ecp.core.exceptions;version="1.19.0",
-  org.eclipse.emf.ecp.core.util;version="1.19.0",
-  org.eclipse.emf.ecp.core.util.observer;version="1.19.0",
-  org.eclipse.emf.ecp.internal.core;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.ui,
-    org.eclipse.emf.ecp.ui.view.test,
-    org.eclipse.emf.ecp.edit.ecore.swt,
-    org.eclipse.emf.ecp.core.rap",
-  org.eclipse.emf.ecp.internal.core.properties;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.internal.core.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui",
-  org.eclipse.emf.ecp.internal.core.util.observer;version="1.19.0";x-friends:="org.eclipse.emf.ecp.core.rap",
-  org.eclipse.emf.ecp.spi.core;version="1.19.0",
-  org.eclipse.emf.ecp.spi.core.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.core;version="1.20.0",
+ org.eclipse.emf.ecp.core.exceptions;version="1.20.0",
+ org.eclipse.emf.ecp.core.util;version="1.20.0",
+ org.eclipse.emf.ecp.core.util.observer;version="1.20.0",
+ org.eclipse.emf.ecp.internal.core;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.ui,
+   org.eclipse.emf.ecp.ui.view.test,
+   org.eclipse.emf.ecp.edit.ecore.swt,
+   org.eclipse.emf.ecp.core.rap",
+ org.eclipse.emf.ecp.internal.core.properties;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.internal.core.util;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui",
+ org.eclipse.emf.ecp.internal.core.util.observer;version="1.20.0";x-friends:="org.eclipse.emf.ecp.core.rap",
+ org.eclipse.emf.ecp.spi.core;version="1.20.0",
+ org.eclipse.emf.ecp.spi.core.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)";resolution:=optional,
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
-Import-Package: org.eclipse.emfforms.common;version="[1.19.0,1.20.0)"
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)";resolution:=optional,
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
+Import-Package: org.eclipse.emfforms.common;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.core
 Service-Component: OSGI-INF/ecpProviderRegistry.xml,OSGI-INF/ecpRepositoryManager.xml,OSGI-INF/ecpProjectManager.xml,OSGI-INF/ecpObserverBus.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.core/pom.xml b/bundles/org.eclipse.emf.ecp.core/pom.xml
index 537e854..3bae77c 100644
--- a/bundles/org.eclipse.emf.ecp.core/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.core/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.core</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java
index d7657bd..c203822 100644
--- a/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java
+++ b/bundles/org.eclipse.emf.ecp.core/src/org/eclipse/emf/ecp/core/util/ECPUtil.java
@@ -134,7 +134,9 @@
 	 * @param superClass
 	 *            - the class for which to get the subclasses
 	 * @return a {@link Collection} of {@link EClass EClasses}
+	 * @deprecated Use {@link EMFUtils}.getSubClasses instead
 	 */
+	@Deprecated
 	public static Collection<EClass> getSubClasses(EClass superClass) {
 		final Collection<EClass> classes = new HashSet<EClass>();
 
diff --git a/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF
index 9abeeef..321bb51 100644
--- a/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diagnostician/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Diagnostician
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.diagnostician;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.diagnostician.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.diagnostician;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ui.validation.test",
- org.eclipse.emf.ecp.internal.diagnostician;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.diagnostician;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ui.validation.test",
+ org.eclipse.emf.ecp.internal.diagnostician;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.validation.diagnostician
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml b/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml
index e06fc55..f91149b 100644
--- a/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.diagnostician/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.validation.diagnostician</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.diffmerge.context/META-INF/MANIFEST.MF
index dfad7b2..6fa8233 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.context/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Diff Merge Context
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.context
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.diffmerge.internal.context.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.diffmerge.internal.context;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.diffmerge.spi.context;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.diffmerge.internal.context;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.diffmerge.spi.context;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.diffmerge.context
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.context/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.context/pom.xml
index 32f6c46..0d2b88f 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.context/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.context/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.context</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/META-INF/MANIFEST.MF
index 76d5c48..fdc4e1a 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.spi.diffmerge.model.provider.DiffmergeEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.diffmerge.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/pom.xml
index 77ad93e..9bcf2e9 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model.edit/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.model.edit</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.diffmerge.model/META-INF/MANIFEST.MF
index 6ab47aa..a04a394 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model;version="1.19.0",
-  org.eclipse.emf.ecp.spi.diffmerge.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.spi.diffmerge.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.spi.diffmerge.model;version="1.20.0",
+ org.eclipse.emf.ecp.spi.diffmerge.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.spi.diffmerge.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.diffmerge.model
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.model/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.model/pom.xml
index 04fd14e..9f7d2e4 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.model/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.model</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/META-INF/MANIFEST.MF
index ae98f1a..3d67e23 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/META-INF/MANIFEST.MF
@@ -2,33 +2,33 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DiffMerge Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.renderer.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.diffmerge.internal.renderer.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.diffmerge.internal.renderer.swt;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.diffmerge.internal.renderer.swt;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.diffmerge.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.diffmerge.renderer.swt
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/pom.xml
index 32ab7ec..40888c7 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.renderer.swt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.renderer.swt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.diffmerge.swt/META-INF/MANIFEST.MF
index 53afa9c..5761240 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/META-INF/MANIFEST.MF
@@ -2,33 +2,33 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DiffMerge UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.swt
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.diffmerge.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.diffmerge.swt;version="1.19.0";x-friends:="org.eclipse.emf.ecp.diffmerge.renderer.swt"
+Export-Package: org.eclipse.emf.ecp.diffmerge.swt;version="1.20.0";x-friends:="org.eclipse.emf.ecp.diffmerge.renderer.swt"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.osgi.util;version="1.1.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.3.0"
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.osgi.util;version="1.1.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.3.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.diffmerge.swt
diff --git a/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml b/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml
index cf56d07..9f6ec11 100644
--- a/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.diffmerge.swt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.swt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.doc/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.doc/META-INF/MANIFEST.MF
index cff5ba1..90640d0 100644
--- a/bundles/org.eclipse.emf.ecp.doc/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.doc/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Doc
 Bundle-SymbolicName: org.eclipse.emf.ecp.doc;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.eclipse.ui.intro;bundle-version="[3.4.0,4.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.doc/pom.xml b/bundles/org.eclipse.emf.ecp.doc/pom.xml
index 48db5e5..8f95cd7 100644
--- a/bundles/org.eclipse.emf.ecp.doc/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.doc/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.doc</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.classpath b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.classpath
index 64c5e31..eca7bdb 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.classpath
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.jdt.core.prefs
index edbd6f6..efea61d 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/META-INF/MANIFEST.MF
index 9aa2e6e..bed8deb 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECore GenModel Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ecore.editor.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.ecore.editor.ui;version="1.2.0";x-internal:=true,
-  org.eclipse.emf.ecp.ecore.editor.ui.operations;version="1.2.0";x-internal:=true
+ org.eclipse.emf.ecp.ecore.editor.ui.operations;version="1.2.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.converter;bundle-version="[2.6.0,3.0.0)",
-  org.eclipse.emf.codegen.ecore.ui;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.importer;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.jface.text;bundle-version="[3.8.101,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ecore.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.102.1,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.converter;bundle-version="[2.6.0,3.0.0)",
+ org.eclipse.emf.codegen.ecore.ui;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.importer;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.jface.text;bundle-version="[3.8.101,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ecore.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.102.1,4.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ecore.editor.ui
 Import-Package: org.eclipse.emf.ecore.presentation;version="0.0.0",
-  org.eclipse.emf.ecore.xmi;version="0.0.0"
+ org.eclipse.emf.ecore.xmi;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/pom.xml b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/pom.xml
index 90ab4e3..28d74de 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.ecore.editor.ui</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/.classpath b/bundles/org.eclipse.emf.ecp.ecore.editor/.classpath
index 64c5e31..eca7bdb 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor/.classpath
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.jdt.core.prefs
index edbd6f6..efea61d 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ecore.editor/META-INF/MANIFEST.MF
index e75ffd3..46a160a 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP ECore Editor
 Bundle-SymbolicName: org.eclipse.emf.ecp.ecore.editor;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.ecore.editor;version="1.2.0";x-friends:="org.eclipse.emf.ecp.ecore.editor.test,org.eclipse.emf.ecp.ecore.editor.ui",
  org.eclipse.emf.ecp.ecore.editor.factory;version="1.2.0";x-friends:="org.eclipse.emf.ecp.ecore.editor.test,org.eclipse.emf.ecp.ecore.editor.ui",
@@ -13,11 +13,11 @@
  org.eclipse.ui;bundle-version="[3.8.0,4.0.0)",
  org.eclipse.emf.ecore.edit;bundle-version="2.8.0",
  org.eclipse.emf.converter;bundle-version="2.6.0"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.ecore.editor
 Import-Package: org.eclipse.emf.codegen.ecore.genmodel;version="0.0.0",
  org.eclipse.emf.ecore.presentation;version="0.0.0",
  org.eclipse.emf.importer;version="0.0.0",
  org.eclipse.emf.importer.ecore;version="0.0.0",
  org.eclipse.jface.wizard;version="0.0.0"
 Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.emf.ecp.ecore.editor
diff --git a/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml b/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml
index 71bfe47..669d0a1 100644
--- a/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ecore.editor/pom.xml
@@ -5,11 +5,11 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.ecore.editor</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/META-INF/MANIFEST.MF
index e95867c..2636ede 100644
--- a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Editor controls for Ecore Elements (Deprecated)
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.ecore.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.edit.ecore.swt.internal;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.edit.ecore.swt.internal;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.edit.ecore.swt
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/pom.xml b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/pom.xml
index d83d50c..32bdcd2 100644
--- a/bundles/org.eclipse.emf.ecp.edit.ecore.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.edit.ecore.swt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.edit.ecore.swt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.edit.swt/META-INF/MANIFEST.MF
index 757709f..720c629 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/META-INF/MANIFEST.MF
@@ -2,65 +2,65 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.edit.internal.swt.Activator
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emf.ecp.edit.internal.swt;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt,org.eclipse.emf.ecp.view.core.swt",
-  org.eclipse.emf.ecp.edit.internal.swt.actions;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.edit.ecore.swt",
-  org.eclipse.emf.ecp.edit.internal.swt.controls;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.ui.view.swt,
-    org.eclipse.emf.ecp.ui.view.editor.controls,
-    org.eclipse.emf.ecp.view.table.ui.swt,
-    org.eclipse.emf.ecp.view.core.swt",
-  org.eclipse.emf.ecp.edit.internal.swt.reference;version="1.19.0";x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.ui.view.editor.controls",
-  org.eclipse.emf.ecp.edit.internal.swt.table;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emfforms.swt.control.multiattribute",
-  org.eclipse.emf.ecp.edit.internal.swt.util;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.editor,
-    org.eclipse.emf.ecp.explorereditorbridge,
-    org.eclipse.emf.ecp.ui.view.swt,
-    org.eclipse.emf.ecp.ui.view.editor.controls,
-    org.eclipse.emf.ecp.view.groupedgrid.ui.swt,
-    org.eclipse.emf.ecp.edit.ecore.swt,
-    org.eclipse.emf.ecp.view.table.ui.swt,
-    org.eclipse.emf.ecp.view.categorization.swt,
-    org.eclipse.emf.ecp.view.treemasterdetail.ui.swt,
-    org.eclipse.emf.ecp.view.core.swt,
-    org.eclipse.emfforms.swt.control.multiattribute",
-  org.eclipse.emf.ecp.edit.spi.swt.actions;version="1.19.0",
-  org.eclipse.emf.ecp.edit.spi.swt.commands;version="1.19.0",
-  org.eclipse.emf.ecp.edit.spi.swt.reference;version="1.19.0",
-  org.eclipse.emf.ecp.edit.spi.swt.table;version="1.19.0",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.edit.internal.swt;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt,org.eclipse.emf.ecp.view.core.swt",
+ org.eclipse.emf.ecp.edit.internal.swt.actions;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.edit.ecore.swt",
+ org.eclipse.emf.ecp.edit.internal.swt.controls;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.ui.view.swt,
+   org.eclipse.emf.ecp.ui.view.editor.controls,
+   org.eclipse.emf.ecp.view.table.ui.swt,
+   org.eclipse.emf.ecp.view.core.swt",
+ org.eclipse.emf.ecp.edit.internal.swt.reference;version="1.20.0";x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.ui.view.editor.controls",
+ org.eclipse.emf.ecp.edit.internal.swt.table;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emfforms.swt.control.multiattribute",
+ org.eclipse.emf.ecp.edit.internal.swt.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.editor,
+   org.eclipse.emf.ecp.explorereditorbridge,
+   org.eclipse.emf.ecp.ui.view.swt,
+   org.eclipse.emf.ecp.ui.view.editor.controls,
+   org.eclipse.emf.ecp.view.groupedgrid.ui.swt,
+   org.eclipse.emf.ecp.edit.ecore.swt,
+   org.eclipse.emf.ecp.view.table.ui.swt,
+   org.eclipse.emf.ecp.view.categorization.swt,
+   org.eclipse.emf.ecp.view.treemasterdetail.ui.swt,
+   org.eclipse.emf.ecp.view.core.swt,
+   org.eclipse.emfforms.swt.control.multiattribute",
+ org.eclipse.emf.ecp.edit.spi.swt.actions;version="1.20.0",
+ org.eclipse.emf.ecp.edit.spi.swt.commands;version="1.20.0",
+ org.eclipse.emf.ecp.edit.spi.swt.reference;version="1.20.0",
+ org.eclipse.emf.ecp.edit.spi.swt.table;version="1.20.0",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.databinding.fieldassist;version="0.0.0",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.fieldassist;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.operation;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.databinding.fieldassist;version="0.0.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.fieldassist;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.operation;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.edit.swt
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml b/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml
index 5a602e8..0872d08 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.edit.swt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java
index 9d8528e..323ded9 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl.java
@@ -962,8 +962,9 @@
 			// }
 			// }
 			final List<Diagnostic> diagnostic = vDiagnostic.getDiagnostic((EObject) element, feature);
-			return getValidationBackgroundColor(diagnostic.size() == 0 ? Diagnostic.OK : diagnostic.get(0)
-				.getSeverity());
+			return getValidationBackgroundColor(diagnostic.size() == 0 ? Diagnostic.OK
+				: diagnostic.get(0)
+					.getSeverity());
 		}
 	}
 
@@ -1013,7 +1014,7 @@
 	 * @author Eugen Neufeld
 	 *
 	 */
-	private class ECPTableEditingSupport extends EditingSupport {
+	class ECPTableEditingSupport extends EditingSupport {
 
 		private final CellEditor cellEditor;
 
@@ -1121,7 +1122,9 @@
 
 		@Override
 		protected final void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell) {
-			editingState.binding.updateTargetToModel();
+			if (editingState.isUpdateNeeded()) {
+				editingState.binding.updateTargetToModel();
+			}
 		}
 
 		class ColumnViewerEditorActivationListenerHelper extends ColumnViewerEditorActivationListener {
@@ -1176,6 +1179,21 @@
 				target.dispose();
 				model.dispose();
 			}
+
+			/**
+			 * Checks if an update is really needed.
+			 *
+			 * @return <code>true</code> if update is really needed, <code>false</code> otherwise.
+			 */
+			boolean isUpdateNeeded() {
+				final Object targetValue = target.getValue();
+				final Object modelValue = model.getValue();
+
+				if (targetValue == null) {
+					return modelValue != null;
+				}
+				return !targetValue.equals(modelValue);
+			}
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF
index 2f42cfe..61a28b5 100644
--- a/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.edit/META-INF/MANIFEST.MF
@@ -2,26 +2,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.edit.Activator
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emf.ecp.edit.spi;version="1.19.0",
-  org.eclipse.emf.ecp.edit.spi.util;version="1.19.0",
-  org.eclipse.emf.ecp.internal.edit;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.edit.spi;version="1.20.0",
+ org.eclipse.emf.ecp.edit.spi.util;version="1.20.0",
+ org.eclipse.emf.ecp.internal.edit;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.6.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)"
-Import-Package: org.eclipse.emf.ecp.view.model.common.edit.provider;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="1.2.0"
+ org.eclipse.emf.ecore;bundle-version="[2.6.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)"
+Import-Package: org.eclipse.emf.ecp.view.model.common.edit.provider;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.edit
 Service-Component: OSGI-INF/ecpControlFactory.xml,OSGI-INF/org.eclipse.emf.ecp.internal.edit.DeleteServiceFactoryImpl.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.edit/pom.xml b/bundles/org.eclipse.emf.ecp.edit/pom.xml
index fc31fa5..a0795d3 100644
--- a/bundles/org.eclipse.emf.ecp.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.edit/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.edit</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ECPControlHelper.java b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ECPControlHelper.java
index c4c43ba..4e6c1cf 100644
--- a/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ECPControlHelper.java
+++ b/bundles/org.eclipse.emf.ecp.edit/src/org/eclipse/emf/ecp/internal/edit/ECPControlHelper.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Jonas - initial API and implementation
+ * Christian W. Damus - bug 530829
  ******************************************************************************/
 package org.eclipse.emf.ecp.internal.edit;
 
@@ -52,8 +53,8 @@
 	 * @param eReference the reference to be modified
 	 * @param editingDomain the editing domain to execute commands on
 	 */
-	public static void addModelElementsInReference(EObject eObject, Set<EObject> eObjects, EReference eReference,
-		EditingDomain editingDomain) {
+	public static void addModelElementsInReference(EObject eObject, Set<? extends EObject> eObjects,
+		EReference eReference, EditingDomain editingDomain) {
 
 		if (eObjects.isEmpty()) {
 			return;
@@ -76,8 +77,9 @@
 	 * @param eReference the reference
 	 * @param elements the elements to remove existing elements from
 	 */
-	@SuppressWarnings("unchecked")
-	public static void removeExistingReferences(EObject eObject, EReference eReference, Set<EObject> elements) {
+	public static void removeExistingReferences(EObject eObject, EReference eReference,
+		Set<? extends EObject> elements) {
+
 		final Set<EObject> existing = new HashSet<EObject>();
 		final Object eGet = eObject.eGet(eReference);
 		if (eGet == null) {
@@ -85,9 +87,10 @@
 		}
 		if (eReference.getUpperBound() == 1) {
 			existing.add((EObject) eGet);
-		}
-		else {
-			existing.addAll((Collection<? extends EObject>) eGet);
+		} else {
+			@SuppressWarnings("unchecked")
+			final Collection<? extends EObject> collection = (Collection<? extends EObject>) eGet;
+			existing.addAll(collection);
 		}
 		elements.removeAll(existing);
 
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.editor.e3/META-INF/MANIFEST.MF
index bfdd18e..abab07e 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/META-INF/MANIFEST.MF
@@ -2,41 +2,41 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Editor integration for 3.x Workbench
 Bundle-SymbolicName: org.eclipse.emf.ecp.editor.e3;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.editor.internal.e3.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.editor.e3;version="1.19.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
-  org.eclipse.emf.ecp.editor.internal.e3;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.editor.e3;version="1.20.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
+ org.eclipse.emf.ecp.editor.internal.e3;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.forms;version="0.0.0",
-  org.eclipse.ui.forms.editor;version="0.0.0",
-  org.eclipse.ui.forms.widgets;version="0.0.0",
-  org.eclipse.ui.menus;version="0.0.0",
-  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0",
-  org.eclipse.ui.services;version="0.0.0"
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.forms;version="0.0.0",
+ org.eclipse.ui.forms.editor;version="0.0.0",
+ org.eclipse.ui.forms.widgets;version="0.0.0",
+ org.eclipse.ui.menus;version="0.0.0",
+ org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0",
+ org.eclipse.ui.services;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.editor.e3
diff --git a/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml b/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml
index 4bbdd4f..dd17317 100644
--- a/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.editor.e3/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.editor.e3</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF
index 70157c4..c191589 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web JSON
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.json
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emf2web.json.controller.xtend;version="1.19.0",
-  org.eclipse.emf.ecp.emf2web.json.generator.seed.xtend;version="1.19.0",
-  org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.19.0",
-  org.eclipse.emf.ecp.emf2web.json.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emf2web.json.controller.xtend;version="1.20.0",
+ org.eclipse.emf.ecp.emf2web.json.generator.seed.xtend;version="1.20.0",
+ org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.20.0",
+ org.eclipse.emf.ecp.emf2web.json.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.xtext.xbase.lib;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.xtend.lib;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.xtend.lib.macro;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.emf2web;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  com.google.gson;bundle-version="[2.2.0,3.0.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.xtend.lib;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.xtend.lib.macro;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.emf2web;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ com.google.gson;bundle-version="[2.2.0,3.0.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.emf2web.json
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml
index acc63db..21b9f66 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.emf2web.json</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/JsonGenerationController.xtend b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/JsonGenerationController.xtend
index 4d12cc4..9871aa5 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/JsonGenerationController.xtend
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/JsonGenerationController.xtend
@@ -14,13 +14,14 @@
 import java.util.Collection
 import java.util.LinkedList
 import java.util.List
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.emf.ecp.emf2web.controller.xtend.GenerationController
 import org.eclipse.emf.ecp.emf2web.controller.xtend.GenerationInfo
 import org.eclipse.emf.ecp.emf2web.json.generator.xtend.EcoreJsonGenerator
 import org.eclipse.emf.ecp.emf2web.json.generator.xtend.FormsJsonGenerator
 import org.eclipse.emf.ecp.emf2web.json.util.ReferenceHelperImpl
-import org.eclipse.emf.ecp.view.spi.model.VView
-import org.eclipse.emf.ecp.emf2web.controller.xtend.GenerationController
 import org.eclipse.emf.ecp.view.spi.model.VElement
+import org.eclipse.emf.ecp.view.spi.model.VView
 
 /**
  * @author Stefan Dirix <sdirix@eclipsesource.com>
@@ -35,7 +36,8 @@
 		val helper=new ReferenceHelperImpl
 		val formsGenerator = new FormsJsonGenerator(helper)
 
-		for (view : views) {
+		for (rawView : views) {
+			val view = EcoreUtil.copy(rawView)
 			for (ecorePath : view.ecorePaths) {
 				helper.addEcorePath(ecorePath);
 			}
@@ -48,6 +50,8 @@
 			schemaInfo.generatedString = schemaFile
 			result.add(schemaInfo)
 
+			ViewCleaner.cleanView(view)
+
 			//internationalize view
 			val allContents = view.eAllContents
 			while (allContents.hasNext) {
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/ViewCleaner.xtend b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/ViewCleaner.xtend
new file mode 100644
index 0000000..85e02f6
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/ViewCleaner.xtend
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Stefan Dirix - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emf2web.json.controller.xtend
+
+import org.eclipse.emf.ecp.view.spi.model.VView
+import org.eclipse.emf.ecore.util.Diagnostician
+import org.eclipse.emf.ecp.view.spi.label.model.VLabel
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationElement
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorization
+import org.eclipse.emf.ecp.view.spi.categorization.model.VCategory
+import org.eclipse.emf.ecp.view.spi.model.VControl
+import org.eclipse.emf.ecp.view.spi.model.VContainer
+import java.util.LinkedList
+import org.eclipse.emf.ecp.view.spi.model.VElement
+import org.eclipse.emf.ecore.util.EcoreUtil
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.common.util.Diagnostic
+import java.util.List
+
+/**
+ * Processes {@link VView}s before ui schema generation
+ * 
+ * @author Stefan Dirix <sdirix@eclipsesource.com>
+ */
+class ViewCleaner {
+	
+	/**
+	 * Remove invalid and not supported {@link VElement}s.
+	 */
+	def static cleanView(VView view) {
+		removeInvalidElements(view)
+
+		val whiteList = #[VLabel, VCategorizationElement, VCategorization, VCategory, VView, VControl, VContainer]
+		removeUnsupportedElements(view, whiteList)
+	}
+
+	private static def void removeInvalidElements(VView view) {
+		val validation = Diagnostician.INSTANCE.validate(view);
+		if (validation.severity == Diagnostic.ERROR) {
+			for (diagnostic : validation.children) {
+				removeInvalidElements(diagnostic)
+			}
+		}
+	}
+
+	private static def void removeInvalidElements(Diagnostic diagnostic) {
+		if (diagnostic.severity == Diagnostic.ERROR && !diagnostic.data.isEmpty &&
+			EObject.isInstance(diagnostic.data.get(0))) {
+			EcoreUtil.delete(diagnostic.data.get(0) as EObject)
+		}
+		for (childDiagnostic : diagnostic.children) {
+			removeInvalidElements(childDiagnostic)
+		}
+	}
+	
+	private static def void removeUnsupportedElements(VView view, List<? extends Class<?>> whiteList) {
+		val toDelete = new LinkedList
+		val allContents = view.eAllContents
+		while (allContents.hasNext) {
+			val next = allContents.next
+			if (VElement.isInstance(next)) {
+				var supported = false
+				for (element : whiteList) {
+					if (element.isInstance(next)) {
+						supported = true
+					}
+				}
+				if (!supported) {
+					toDelete.add(next)
+				}
+			}
+		}
+		EcoreUtil.deleteAll(toDelete, false)
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonGenerator.xtend b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonGenerator.xtend
index eddd7b8..7143445 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonGenerator.xtend
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonGenerator.xtend
@@ -39,13 +39,13 @@
  */
 class EcoreJsonGenerator extends JsonGenerator {
 
-	private static final val TYPE = "type"
-	private static final val OBJECT = "object"
-	private static final val REQUIRED = "required"
-	private static final val PROPERTIES = "properties"
-	private static final val ADDITIONAL_PROPERTIES = "additionalProperties"	
+	static val TYPE = "type"
+	static val OBJECT = "object"
+	static val REQUIRED = "required"
+	static val PROPERTIES = "properties"
+	static val ADDITIONAL_PROPERTIES = "additionalProperties"	
 	
-	private final val visitedClasses = new HashSet<EClass>();
+	val visitedClasses = new HashSet<EClass>();
 
 	override createJsonElement(EObject object) {
 		synchronized(visitedClasses){
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonGenerator.xtend b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonGenerator.xtend
index 156c43f..21d8bbb 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonGenerator.xtend
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonGenerator.xtend
@@ -32,15 +32,15 @@
  * */
 class FormsJsonGenerator extends JsonGenerator {
 	
-	private static final val TYPE = "type"
-	private static final val ELEMENTS = "elements"
-	private static final val CONTROL = "Control"
+	static val TYPE = "type"
+	static val ELEMENTS = "elements"
+	static val CONTROL = "Control"
 	// reactive again
-	// private static final val CATEGORIZATION_ELEMENT = "CategorizationElement"
-	private static final val CATEGORIZATION = "Categorization"
-	private static final val CATEGORY = "Category"
-	private static final val SCOPE = "scope"
-	private static final val LABEL = "label"
+	// static val CATEGORIZATION_ELEMENT = "CategorizationElement"
+	static val CATEGORIZATION = "Categorization"
+	static val CATEGORY = "Category"
+	static val SCOPE = "scope"
+	static val LABEL = "label"
 	
 	ReferenceHelper refHelper
 	
@@ -52,11 +52,6 @@
 		createJsonFormsElement(object)
 	}
 	
-	private def dispatch JsonElement createJsonFormsElement(EObject object){
-		throw new UnsupportedOperationException(
-			"Cannot create a JSON Forms element for EObjects that are not instanceof VView, VControl or VContainer.")
-	}
-	
 	private def dispatch JsonElement createJsonFormsElement(VLabel label) {
 		val jsonObj = new JsonObject()
 		jsonObj.withType("Label")
@@ -118,6 +113,16 @@
 		jsonObject.withVerticalLayout(elements)
 	}
 	
+	// fallback to avoid generator-breaking exceptions - should not be hit but avoided by only processing valid view models
+	private def dispatch JsonElement createJsonFormsElement(EObject object){
+		new JsonObject
+	}
+	
+	// fallback to avoid generator-breaking exceptions - should not be hit but avoided by only processing valid view models
+	private def dispatch JsonElement createJsonFormsElement(Void x){
+		new JsonObject
+	}
+	
 	private def withType(JsonObject jsonObject, String type) {
 		jsonObject.with(TYPE, type)
 	}
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/JsonGenerator.xtend b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/JsonGenerator.xtend
index 185bc22..9021148 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/JsonGenerator.xtend
+++ b/bundles/org.eclipse.emf.ecp.emf2web.json/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/JsonGenerator.xtend
@@ -71,4 +71,16 @@
 		jsonObject.add(propertyName, jsonArray)
 		jsonObject
 	}
+	
+	// fallback if value is null
+	protected def dispatch with(JsonObject jsonObject, String propertyName, Void x) {
+		jsonObject.addProperty(propertyName, "")
+		jsonObject
+	}
+	
+	// fallback for all values not handled above
+	protected def dispatch with(JsonObject jsonObject, String propertyName, Object object) {
+		jsonObject.addProperty(propertyName, "")
+		jsonObject
+	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF
index f4514e3..576bf7b 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web JSON UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.ui.json;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emf2web.ui.json.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emf2web.ui.json;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emf2web.ui.json.internal.handler;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emf2web.ui.json.internal.messages;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emf2web.ui.json;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.ui.json.internal.handler;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.ui.json.internal.messages;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
-  org.eclipse.emf.ecp.emf2web.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emf2web;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.emf2web.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emf2web;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.emf2web.ui.json
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml
index e22b48d..be8c80f 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.emf2web.ui.json</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/src/org/eclipse/emf/ecp/emf2web/ui/json/internal/handler/ExportJSONFormsHandler.java b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/src/org/eclipse/emf/ecp/emf2web/ui/json/internal/handler/ExportJSONFormsHandler.java
index 45a57c5..56b9a1f 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui.json/src/org/eclipse/emf/ecp/emf2web/ui/json/internal/handler/ExportJSONFormsHandler.java
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui.json/src/org/eclipse/emf/ecp/emf2web/ui/json/internal/handler/ExportJSONFormsHandler.java
@@ -30,6 +30,7 @@
 import org.eclipse.emf.ecp.ide.spi.util.EcoreHelper;
 import org.eclipse.emf.ecp.ide.spi.util.ViewModelHelper;
 import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Display;
@@ -76,6 +77,9 @@
 					failedFiles.add(file);
 					continue;
 				}
+				if (view.getLoadingProperties() == null) {
+					view.setLoadingProperties(VViewFactory.eINSTANCE.createViewModelLoadingProperties());
+				}
 				views.add(view);
 			}
 		}
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF
index 51c0732..c68aa9a 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui/META-INF/MANIFEST.MF
@@ -2,27 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emf2web.ui.handler;version="1.19.0",
-  org.eclipse.emf.ecp.emf2web.ui.messages;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emf2web.ui.wizard;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.emf2web;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.core.databinding.beans;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.equinox.common;bundle-version="[3.7.0,4.0.0)",
-  com.ibm.icu;bundle-version="54.1.0",
-  org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.common.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.11.0,4.0.0)"
+Export-Package: org.eclipse.emf.ecp.emf2web.ui.handler;version="1.20.0",
+ org.eclipse.emf.ecp.emf2web.ui.messages;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.ui.wizard;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.emf2web;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.equinox.common;bundle-version="[3.7.0,4.0.0)",
+ com.ibm.icu;bundle-version="54.1.0",
+ org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.11.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.emf2web.ui
 Import-Package: org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.jface.databinding.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml
index dda2608..410ab56 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web.ui/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.emf2web.ui</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
index 2f80813..60b4c3a 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emf2web/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.emf2web.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emf2web;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emf2web.controller.xtend;version="1.19.0";
-   uses:="org.eclipse.emf.ecore,
-    org.eclipse.emf.ecp.emf2web.exporter,
-    org.eclipse.emf.common.util,
-    org.eclipse.emf.ecp.view.spi.model",
-  org.eclipse.emf.ecp.emf2web.exporter;version="1.19.0";uses:="org.eclipse.emf.common.util,org.eclipse.emf.ecp.emf2web.controller.xtend",
-  org.eclipse.emf.ecp.emf2web.generator;version="1.19.0";uses:="org.eclipse.emf.ecore",
-  org.eclipse.emf.ecp.emf2web.internal.messages;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emf2web.util;version="1.19.0";uses:="org.eclipse.emf.ecore",
-  org.eclipse.emf.ecp.emf2web.util.xtend;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.emf2web;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.controller.xtend;version="1.20.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.ecp.emf2web.exporter,
+   org.eclipse.emf.common.util,
+   org.eclipse.emf.ecp.view.spi.model",
+ org.eclipse.emf.ecp.emf2web.exporter;version="1.20.0";uses:="org.eclipse.emf.common.util,org.eclipse.emf.ecp.emf2web.controller.xtend",
+ org.eclipse.emf.ecp.emf2web.generator;version="1.20.0";uses:="org.eclipse.emf.ecore",
+ org.eclipse.emf.ecp.emf2web.internal.messages;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emf2web.util;version="1.20.0";uses:="org.eclipse.emf.ecore",
+ org.eclipse.emf.ecp.emf2web.util.xtend;version="1.20.0"
 Require-Bundle: org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.emf;bundle-version="[2.6.0,3.0.0)",
@@ -26,26 +26,26 @@
  org.eclipse.core.resources;bundle-version="[3.8.0,4.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.11.0,3.0.0)",
  org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.19.0,1.20.0)",
-  com.google.gson;bundle-version="[2.2.0,3.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.common.model;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.20.0,1.21.0)",
+ com.google.gson;bundle-version="[2.2.0,3.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.common.model;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emf2web/pom.xml b/bundles/org.eclipse.emf.ecp.emf2web/pom.xml
index 6a3764c..68608b9 100644
--- a/bundles/org.eclipse.emf.ecp.emf2web/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emf2web/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.emf2web</artifactId>
   <packaging>eclipse-plugin</packaging>
   <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/META-INF/MANIFEST.MF
index 7c330d4..fb3f014 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore Core RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.core.rap
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.internal.core.rap.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emfstore.internal.core.rap;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.core.rap;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.core.rap;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.rap.rwt;version="0.0.0",
-  org.eclipse.rap.rwt.service;version="0.0.0"
+ org.eclipse.rap.rwt.service;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.emfstore.core.rap
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/pom.xml
index 5018bd4..ed9f8ba 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core.rap/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core.rap/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfstore.core.rap</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.core/META-INF/MANIFEST.MF
index f921505..25d69a9 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore Provider Core Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.core;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.core.internal.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emfstore.core.internal;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.emfstore.ui,
-    org.eclipse.emf.ecp.emfstore.ui.search,
-    org.eclipse.emf.ecp.view.ui.editor.test,
-    org.eclipse.emf.ecp.emfstore.ui.e3,
-    org.eclipse.emf.ecp.emfstore.ui.e4,
-    org.eclipse.emf.ecp.emfstore.core.rap"
+Export-Package: org.eclipse.emf.ecp.emfstore.core.internal;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.emfstore.ui,
+   org.eclipse.emf.ecp.emfstore.ui.search,
+   org.eclipse.emf.ecp.view.ui.editor.test,
+   org.eclipse.emf.ecp.emfstore.ui.e3,
+   org.eclipse.emf.ecp.emfstore.ui.e4,
+   org.eclipse.emf.ecp.emfstore.core.rap"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.client;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)"
-Import-Package: org.eclipse.emfforms.common;version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)"
+Import-Package: org.eclipse.emfforms.common;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.emfstore.core
 Service-Component: OSGI-INF/esWorkspaceProviderProvider.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.core/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.core/pom.xml
index 1643d88..00d1ae0 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.core/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.core/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfstore.core</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF
index 0442608..e3919ab 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.localserver/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.emfstore.localserver.internal;version="1.7.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
-  org.eclipse.emf.emfstore.server;bundle-version="[1.3.0,2.0.0)"
+ org.eclipse.emf.emfstore.server;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.emfstore.localserver
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/META-INF/MANIFEST.MF
index b971000..0f3d029 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/META-INF/MANIFEST.MF
@@ -2,36 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore E3
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.e3;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.internal.ui.e3.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui.decorator;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emfstore.internal.ui.e3;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.19.0";x-internal:=true;uses:="org.eclipse.core.commands"
-Require-Bundle: org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.client;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.emfstore.client.ui;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui.decorator;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.e3;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.20.0";x-internal:=true;uses:="org.eclipse.core.commands"
+Require-Bundle: org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.handlers;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0"
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.handlers;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.emfstore.ui.e3
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/pom.xml
index 312e688..300ce7a 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e3/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfstore.ui.e3</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/META-INF/MANIFEST.MF
index 56a7d78..1ea73ea 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Emfstore e4 ui
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.e4;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.e4.emfstore;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.e4.emfstore;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.e4.core.di;bundle-version="[1.2.0,2.0.0)",
-  javax.inject;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
-  org.eclipse.emf.emfstore.client.ui;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.swt;bundle-version="[3.100.0,4.0.0)",
-  org.eclipse.e4.ui.services;bundle-version="[0.10.0,2.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.client;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.19.0,1.20.0)"
+ javax.inject;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.swt;bundle-version="[3.100.0,4.0.0)",
+ org.eclipse.e4.ui.services;bundle-version="[0.10.0,2.0.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.emfstore.ui;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.emfstore.ui.e4
 Import-Package: org.osgi.framework;version="1.3.0"
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/pom.xml
index 6a4c134..508a4d3 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.e4/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfstore.ui.e4</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/META-INF/MANIFEST.MF
index 3340606..1147f4f 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/META-INF/MANIFEST.MF
@@ -2,25 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Search UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui.search;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emfstore.ui.search;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emfstore.ui.search;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.e3;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.client;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.e3;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.emfstore.ui.search
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.handlers;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0"
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.handlers;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/pom.xml
index 0fc2e8d..27f551d 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui.search/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui.search/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfstore.ui.search</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF
index f008780..5e4ac0e 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/META-INF/MANIFEST.MF
@@ -2,33 +2,33 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP EMFStore UI Provider
 Bundle-SymbolicName: org.eclipse.emf.ecp.emfstore.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.emfstore.internal.ui.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.19.0";x-friends:="org.eclipse.emf.ecp.emfstore.ui.e4,org.eclipse.emf.ecp.emfstore.ui.e3",
-  org.eclipse.emf.ecp.emfstore.internal.ui.observer;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.emfstore.internal.ui.property;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.emfstore.internal.ui;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.handler;version="1.20.0";x-friends:="org.eclipse.emf.ecp.emfstore.ui.e4,org.eclipse.emf.ecp.emfstore.ui.e3",
+ org.eclipse.emf.ecp.emfstore.internal.ui.observer;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.emfstore.internal.ui.property;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.client;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.emf.emfstore.client.ui;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.emfstore.client.ui;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.emfstore.ui
diff --git a/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml b/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml
index cd8d1ca..ece46b8 100644
--- a/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.emfstore.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfstore.ui</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.examplemodel.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.examplemodel.ui/META-INF/MANIFEST.MF
index 6f7ed7b..7750452 100644
--- a/bundles/org.eclipse.emf.ecp.examplemodel.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.examplemodel.ui/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: UI Contributions for the Bowling example model
 Bundle-SymbolicName: org.eclipse.emf.ecp.examplemodel.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.examplemodel.ui
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.examplemodel.ui/pom.xml b/bundles/org.eclipse.emf.ecp.examplemodel.ui/pom.xml
index f99aed3..2f147a1 100644
--- a/bundles/org.eclipse.emf.ecp.examplemodel.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.examplemodel.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.examplemodel.ui</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
index c44b9fa..7a2ba0a 100644
--- a/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.explorereditorbridge/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Explorer Editor Bridge
 Bundle-SymbolicName: org.eclipse.emf.ecp.explorereditorbridge;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.explorereditorbridge.internal.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.explorereditorbridge.internal;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.view.test"
+Export-Package: org.eclipse.emf.ecp.explorereditorbridge.internal;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.view.test"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.editor.e3;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.editor.e3;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.ecp.edit.internal.swt;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0"
+ org.eclipse.emf.ecp.edit.internal.swt;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.explorereditorbridge
diff --git a/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml b/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml
index 43f16c1..496817f 100644
--- a/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.explorereditorbridge/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.explorereditorbridge</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.graphiti.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.graphiti.core/META-INF/MANIFEST.MF
index bca31e9..4341d31 100644
--- a/bundles/org.eclipse.emf.ecp.graphiti.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.graphiti.core/META-INF/MANIFEST.MF
@@ -6,19 +6,19 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.graphiti;version="1.7.0";x-friends:="org.eclipse.emf.ecp.graphiti.integration"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.graphiti;bundle-version="[0.11.0,1.0.0)",
-  org.eclipse.graphiti.ui;bundle-version="[0.11.0,1.0.0)";visibility:=reexport,
-  org.eclipse.gef;bundle-version="3.8.1";visibility:=reexport,
-  org.eclipse.emf.transaction;bundle-version="1.4.0"
+ org.eclipse.graphiti;bundle-version="[0.11.0,1.0.0)",
+ org.eclipse.graphiti.ui;bundle-version="[0.11.0,1.0.0)";visibility:=reexport,
+ org.eclipse.gef;bundle-version="3.8.1";visibility:=reexport,
+ org.eclipse.emf.transaction;bundle-version="1.4.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.graphiti.core
 Import-Package: org.eclipse.core.commands.operations;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.util;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.views.properties;ui.views=split;version="0.0.0",
-  org.eclipse.ui.views.properties.tabbed;version="0.0.0"
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.util;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.views.properties;ui.views=split;version="0.0.0",
+ org.eclipse.ui.views.properties.tabbed;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.graphiti.integration/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.graphiti.integration/META-INF/MANIFEST.MF
index bad8f1c..0a7593a 100644
--- a/bundles/org.eclipse.emf.ecp.graphiti.integration/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.graphiti.integration/META-INF/MANIFEST.MF
@@ -5,18 +5,18 @@
 Bundle-Version: 1.7.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.graphiti.internal.integration;version="1.7.0";x-internal:=true,
-  org.eclipse.emf.ecp.internal.graphiti.feature;version="1.7.0";x-internal:=true
+ org.eclipse.emf.ecp.internal.graphiti.feature;version="1.7.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="3.1.0",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.graphiti;bundle-version="0.9.1",
-  org.eclipse.graphiti.mm;bundle-version="0.9.1",
-  org.eclipse.graphiti.pattern;bundle-version="0.9.1",
-  org.eclipse.emf.transaction;bundle-version="1.4.0",
-  org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.300",
-  org.eclipse.emf.edit.ui;bundle-version="2.8.0",
-  org.eclipse.emf.databinding.edit;bundle-version="1.2.0",
-  org.eclipse.emf.ecp.graphiti.core;bundle-version="[1.7.0,1.8.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.graphiti;bundle-version="0.9.1",
+ org.eclipse.graphiti.mm;bundle-version="0.9.1",
+ org.eclipse.graphiti.pattern;bundle-version="0.9.1",
+ org.eclipse.emf.transaction;bundle-version="1.4.0",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.300",
+ org.eclipse.emf.edit.ui;bundle-version="2.8.0",
+ org.eclipse.emf.databinding.edit;bundle-version="1.2.0",
+ org.eclipse.emf.ecp.graphiti.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.graphiti.integration
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/META-INF/MANIFEST.MF
index b0f5021..c77145f 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms View Editor to Template Editor Integration
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view.templatebridge;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ide.editor.view.templatebridge.actions;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.tooling;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.internal.ide.editor.view.templatebridge.actions;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.tooling;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.editor.view.templatebridge
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/pom.xml b/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/pom.xml
index d3edf34..70a8b3a 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view.templatebridge/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.editor.view.templatebridge</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.editor.view/META-INF/MANIFEST.MF
index bfe7764..7977f1c 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/META-INF/MANIFEST.MF
@@ -2,27 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE View Editor
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.editor.view.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3",
-  org.eclipse.emf.ecp.ide.editor.view.messages;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3",
+ org.eclipse.emf.ecp.ide.editor.view.messages;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.ide;bundle-version="[3.9.1,4.0.0)",
-  org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.migrator;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)"
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.ide;bundle-version="[3.9.1,4.0.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.editor.view
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/plugin.xml b/bundles/org.eclipse.emf.ecp.ide.editor.view/plugin.xml
index 1482195..72f3046 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/plugin.xml
@@ -5,6 +5,7 @@
          point="org.eclipse.ui.editors">
       <editor
             class="org.eclipse.emf.ecp.ide.editor.view.ViewEditorPart"
+            contributorClass="org.eclipse.emf.ecp.ide.editor.view.ViewEditorActionBarContributor"
             default="false"
             extensions="view"
             icon="icons/view.png"
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/pom.xml b/bundles/org.eclipse.emf.ecp.ide.editor.view/pom.xml
index e8cde05..ed887b2 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.editor.view</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorActionBarContributor.java b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorActionBarContributor.java
new file mode 100644
index 0000000..32e5aae
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorActionBarContributor.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.ide.editor.view;
+
+import java.util.Collection;
+import java.util.stream.Stream;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.edit.spi.DeleteService;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.edit.ui.action.CopyAction;
+import org.eclipse.emf.edit.ui.action.CutAction;
+import org.eclipse.emf.edit.ui.action.DeleteAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.PasteAction;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Tree;
+
+/**
+ * Action-bar contributor for the View Model Editor.
+ *
+ * @since 1.20
+ */
+public class ViewEditorActionBarContributor extends EditingDomainActionBarContributor {
+
+	/**
+	 * Initializes me.
+	 */
+	public ViewEditorActionBarContributor() {
+		super();
+	}
+
+	@Override
+	protected DeleteAction createDeleteAction() {
+		return new DeleteServiceAction();
+	}
+
+	@Override
+	protected CopyAction createCopyAction() {
+		return new CopyViewTreeAction();
+	}
+
+	@Override
+	protected PasteAction createPasteAction() {
+		return new PasteViewTreeAction();
+	}
+
+	@Override
+	protected CutAction createCutAction() {
+		return new CutViewTreeAction();
+	}
+
+	/**
+	 * Obtain a service of the given type from the {@linkplain #getViewModelContext() view model context}, if any.
+	 *
+	 * @param serviceType the type of service to obtain
+	 * @return the service, or {@code null} if none can be obtained
+	 *
+	 * @param <T> the type of service to obtain
+	 */
+	protected <T> T getService(Class<T> serviceType) {
+		final ViewModelContext context = getViewModelContext();
+		return context == null ? null : context.getService(serviceType);
+	}
+
+	/**
+	 * Obtain the editor's view model context.
+	 *
+	 * @return the view model context, or {@code null} if the editor has none
+	 */
+	protected ViewModelContext getViewModelContext() {
+		return activeEditor == null ? null : activeEditor.getAdapter(ViewModelContext.class);
+	}
+
+	/**
+	 * Returns whether the tree showing the view model's VElement hierarchy is currently active.
+	 * 
+	 * @return <code>true</code> if the tree is active; <code>false</code> otherwise
+	 */
+	private boolean isViewTreeActive() {
+		return Display.getCurrent().getFocusControl() instanceof Tree;
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Custom delete action that delegates to the {@link DeleteService}, if it's available.
+	 */
+	private class DeleteServiceAction extends DeleteAction {
+
+		DeleteServiceAction() {
+			super();
+		}
+
+		@Override
+		public void run() {
+			final DeleteService deleteService = getService(DeleteService.class);
+			if (deleteService == null) {
+				super.run();
+			} else {
+				@SuppressWarnings("unchecked")
+				final Collection<Object> selection = getStructuredSelection().toList();
+				// The delete service executes commands on the stack
+				deleteService.deleteElements(selection);
+			}
+		}
+
+		@Override
+		public boolean updateSelection(IStructuredSelection selection) {
+			final DeleteService deleteService = getService(DeleteService.class);
+			if (deleteService == null) {
+				return super.updateSelection(selection);
+			}
+
+			return !selection.isEmpty() && Stream.of(selection.toArray()).noneMatch(this::isRoot);
+		}
+
+		private boolean isRoot(Object object) {
+			return object instanceof EObject && ((EObject) object).eContainer() == null;
+		}
+
+	}
+
+	/** EMF copy action that is only enabled if the tree of the view model's VElement hierarchy is active. */
+	private class CopyViewTreeAction extends CopyAction {
+
+		@Override
+		public boolean isEnabled() {
+			return isViewTreeActive() && super.isEnabled();
+		}
+
+	}
+
+	/** EMF paste action that is only enabled if the tree of the view model's VElement hierarchy is active. */
+	private class PasteViewTreeAction extends PasteAction {
+
+		@Override
+		public boolean isEnabled() {
+			return isViewTreeActive() && super.isEnabled();
+		}
+
+	}
+
+	/** EMF cut action that is only enabled if the tree of the view model's VElement hierarchy is active. */
+	private class CutViewTreeAction extends CutAction {
+
+		@Override
+		public boolean isEnabled() {
+			return isViewTreeActive() && super.isEnabled();
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart.java b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart.java
index 71926d9..e739fc3 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart.java
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.view/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543376
  ******************************************************************************/
 package org.eclipse.emf.ecp.ide.editor.view;
 
@@ -65,7 +66,10 @@
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.reporting.StatusReport;
 import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
+import org.eclipse.emf.ecp.view.spi.swt.services.ECPSelectionProviderService;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.ui.util.EditUIUtil;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -100,7 +104,7 @@
  *
  */
 public class ViewEditorPart extends EditorPart implements
-	ViewModelEditorCallback {
+	ViewModelEditorCallback, IEditingDomainProvider {
 
 	private Resource resource;
 	private BasicCommandStack basicCommandStack;
@@ -227,6 +231,22 @@
 	}
 
 	/**
+	 * @since 1.20
+	 */
+	@Override
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+	@Override
+	public <T> T getAdapter(Class<T> adapter) {
+		if (adapter == ViewModelContext.class) {
+			return adapter.cast(render.getViewModelContext());
+		}
+		return super.getAdapter(adapter);
+	}
+
+	/**
 	 * Checks whether the loaded VView is valid:
 	 * <ul>
 	 * <li>not null</li>
@@ -630,6 +650,8 @@
 					new EMFDeleteServiceImpl());
 			viewModelContext.putContextValue("enableMultiEdit", Boolean.TRUE); //$NON-NLS-1$
 			render = ECPSWTViewRenderer.INSTANCE.render(parent, viewModelContext);
+			getSite().setSelectionProvider(
+				viewModelContext.getService(ECPSelectionProviderService.class).getSelectionProvider());
 		} catch (final ECPRendererException ex) {
 			Activator.getDefault().getReportService().report(
 				new StatusReport(new Status(IStatus.ERROR, Activator.PLUGIN_ID, ex.getMessage(), ex)));
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/META-INF/MANIFEST.MF
index a741402..944b73b 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/META-INF/MANIFEST.MF
@@ -2,8 +2,8 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Viewmodel
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.viewmodel;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.editor.viewmodel
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/pom.xml b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/pom.xml
index 32f39f6..424892f 100644
--- a/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.editor.viewmodel/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.editor.viewmodel</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.migration/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.migration/META-INF/MANIFEST.MF
index b7ca0c3..0349ccf 100644
--- a/bundles/org.eclipse.emf.ecp.ide.migration/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ide.migration/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewModel Migration Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.migration;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.internal.migration.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ide.internal.migration;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.internal.migration;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.migration
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ide.migration/pom.xml b/bundles/org.eclipse.emf.ecp.ide.migration/pom.xml
index 240a16a..0a90ab2 100644
--- a/bundles/org.eclipse.emf.ecp.ide.migration/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.migration/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.migration</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.util/META-INF/MANIFEST.MF
index 1493f16..f530784 100644
--- a/bundles/org.eclipse.emf.ecp.ide.util/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ide.util/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Ecore Helper Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.util;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.internal.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ide.internal;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ide.spi.util;version="1.19.0",
-  org.eclipse.emf.ecp.internal.ide.util.messages;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.internal;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ide.spi.util;version="1.20.0",
+ org.eclipse.emf.ecp.internal.ide.util.messages;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)"
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.util
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ide.util/pom.xml b/bundles/org.eclipse.emf.ecp.ide.util/pom.xml
index 071e60b..84de7f9 100644
--- a/bundles/org.eclipse.emf.ecp.ide.util/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.util/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.util</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ide.view.service/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ide.view.service/META-INF/MANIFEST.MF
index e051d42..e66e92e 100644
--- a/bundles/org.eclipse.emf.ecp.ide.view.service/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ide.view.service/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE ViewModel Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.view.service
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.view.service.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ide.view.internal.service;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
-  org.eclipse.emf.ecp.ide.view.service;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.ide.editor.view,
-    org.eclipse.emf.ecp.ui.view.editor.controls,
-    org.eclipse.emf.ecp.view.model.editor,
-    org.eclipse.emf.ecp.view.model.project.installer"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)"
+Export-Package: org.eclipse.emf.ecp.ide.view.internal.service;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
+ org.eclipse.emf.ecp.ide.view.service;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.ide.editor.view,
+   org.eclipse.emf.ecp.ui.view.editor.controls,
+   org.eclipse.emf.ecp.view.model.editor,
+   org.eclipse.emf.ecp.view.model.project.installer"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/ideviewmdoelregistry.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ide.view.service/pom.xml b/bundles/org.eclipse.emf.ecp.ide.view.service/pom.xml
index ae55928..3be15e7 100644
--- a/bundles/org.eclipse.emf.ecp.ide.view.service/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ide.view.service/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.view.service</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/META-INF/MANIFEST.MF
index 6da1bd1..a82f9d4 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Quickfix UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix.ui.e4;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.quickfix.ui.e4.internal;version="1.19.0";x-friends:="org.eclipse.emf.ecp.application.e4"
+Export-Package: org.eclipse.emf.ecp.quickfix.ui.e4.internal;version="1.20.0";x-friends:="org.eclipse.emf.ecp.application.e4"
 Require-Bundle: org.eclipse.e4.ui.model.workbench;bundle-version="[1.1.0,3.0.0)",
-  org.eclipse.e4.ui.di;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.e4.ui.services;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.e4.core.di;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.e4.ui.workbench;bundle-version="[1.0.2,2.0.0)",
-  org.eclipse.emf.ecp.quickfix;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.jface;bundle-version="[3.7.0,4.0.0)"
+ org.eclipse.e4.ui.di;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.e4.ui.services;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.e4.ui.workbench;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.emf.ecp.quickfix;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.jface;bundle-version="[3.7.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.quickfix.ui.e4
 Import-Package: javax.inject;version="1.0.0"
diff --git a/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/pom.xml b/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/pom.xml
index 907b081..9af3858 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.quickfix.ui.e4/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
index 03cfbc5..c9ac24a 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.quickfix/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Quickfix Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.quickfix;version="1.19.0",
- org.eclipse.emf.ecp.quickfix.internal;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.quickfix;version="1.20.0",
+ org.eclipse.emf.ecp.quickfix.internal;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.quickfix
 Service-Component: OSGI-INF/modelQuickFix.xml
 Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.emf.ecp.quickfix
diff --git a/bundles/org.eclipse.emf.ecp.quickfix/pom.xml b/bundles/org.eclipse.emf.ecp.quickfix/pom.xml
index eb16cbf..d25687b 100644
--- a/bundles/org.eclipse.emf.ecp.quickfix/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.quickfix/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF
index e168a69..9525857 100644
--- a/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.rap.util/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: RAP Util
 Bundle-SymbolicName: org.eclipse.emf.ecp.rap.util;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.rap.spi.util;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.rap.util
 Import-Package: org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.rap.util/pom.xml b/bundles/org.eclipse.emf.ecp.rap.util/pom.xml
index 7af99ec..61fd7b8 100644
--- a/bundles/org.eclipse.emf.ecp.rap.util/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.rap.util/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.rap.util</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
index 25c77a6..53ff36a 100644
--- a/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.rap/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.rap;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.rap.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.rap;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="3.8.0",
-  org.eclipse.rap.ui;bundle-version="2.0.0"
+Export-Package: org.eclipse.emf.ecp.rap;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="3.8.0",
+ org.eclipse.rap.ui;bundle-version="2.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.rap
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.rap/pom.xml b/bundles/org.eclipse.emf.ecp.rap/pom.xml
index 5be56f9..cafcb92 100644
--- a/bundles/org.eclipse.emf.ecp.rap/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.rap/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.rap</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.test.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.test.common/META-INF/MANIFEST.MF
index 4e7e937..bb5b78a 100644
--- a/bundles/org.eclipse.emf.ecp.test.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.test.common/META-INF/MANIFEST.MF
@@ -2,10 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Test Helpers
 Bundle-SymbolicName: org.eclipse.emf.ecp.test.common
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.test.common;version="1.19.0"
-Require-Bundle: org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.test.common;version="1.20.0"
+Require-Bundle: org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
+ org.junit;bundle-version="[4.12.0,5.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.test.common
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.test.common/pom.xml b/bundles/org.eclipse.emf.ecp.test.common/pom.xml
index e048edd..9d9e3b4 100644
--- a/bundles/org.eclipse.emf.ecp.test.common/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.test.common/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.test.common</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/PerformanceClock.java b/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/PerformanceClock.java
new file mode 100644
index 0000000..44cb5ab
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.test.common/src/org/eclipse/emf/ecp/test/common/PerformanceClock.java
@@ -0,0 +1,184 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * lucas - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.test.common;
+
+import static org.junit.Assert.fail;
+
+import java.util.Arrays;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+/**
+ * Convenience class for timing performance tests.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public final class PerformanceClock {
+
+	private PerformanceClock() {
+		// Utility class
+	}
+
+	/**
+	 * Run an {@code experiment} several times to compute the average elapsed time with standard deviation.
+	 *
+	 * @param iterations the number of iterations to run the experiment
+	 * @param before runnable executed before every experiment
+	 * @param experiment the experiment to execute and measure
+	 * @param after runnable executed after every experiment
+	 * @return The measured average execution time and standard deviation
+	 */
+	public static Measure time(int iterations, Runnable before, Runnable experiment, Runnable after) {
+		final int count = Math.max(7, iterations); // We toss high and low so need at least five
+		final int n = count - 2;
+
+		final double[] samples = new double[count];
+
+		before.run();
+		try {
+			for (int i = 0; i < count; i++) {
+				final long start = System.nanoTime();
+				experiment.run();
+				final long end = System.nanoTime();
+				samples[i] = (end - start) / 1_000_000d;
+			}
+		} finally {
+			after.run();
+		}
+
+		Arrays.sort(samples);
+
+		final int last = count - 1;
+		double sum = 0.0;
+		for (int i = 1; i < last; i++) {
+			sum = sum + samples[i];
+		}
+
+		final double average = sum / n;
+		double sumdev = 0.0;
+		for (int i = 1; i < last; i++) {
+			final double dev = samples[i] - average;
+			sumdev = sumdev + dev * dev;
+		}
+		final double stddev = Math.sqrt(sumdev / (n - 1));
+
+		return new Measure(average, stddev);
+	}
+
+	/**
+	 * Run an {@code experiment} on both the small- and the large inputs,
+	 * measuring the performance of each, and compare the performance to verify that
+	 * it's not worse than the expected worst case multiplier.
+	 *
+	 * @param iterations the number of iterations to perform of the {@code experiment} on each input
+	 * @param worstCaseMultiplier a multiplier on the measured timing of the small-scale scenario that is it maximal
+	 *            acceptable timing of the large-scale scenario. Performance worse than this multiplier fails the test
+	 * @param smallInput supplier of the small input. It can supply the same input or a different input on every
+	 *            invocation
+	 * @param largeInput supplier of the large-scale input. It can supply the same input or a different input on every
+	 *            invocation
+	 * @param experiment
+	 *            the experiment to run at each scale of input
+	 *
+	 * @param <T> the type of input for the {@code experiment}
+	 */
+	public static <T> void test(int iterations, double worstCaseMultiplier, //
+		Supplier<? extends T> smallInput, Supplier<? extends T> largeInput, //
+		Consumer<? super T> experiment) {
+
+		test(iterations, worstCaseMultiplier, smallInput, largeInput, null, experiment, null);
+	}
+
+	/**
+	 * Run an {@code experiment} on both the small- and the large inputs,
+	 * measuring the performance of each, and compare the performance to verify that
+	 * it's not worse than the expected worst case multiplier.
+	 *
+	 * @param iterations the number of iterations to perform of the {@code experiment} on each input
+	 * @param worstCaseMultiplier a multiplier on the measured timing of the small-scale scenario that is it maximal
+	 *            acceptable timing of the large-scale scenario. Performance worse than this multiplier fails the test
+	 * @param smallInput supplier of the small input. It can supply the same input or a different input on every
+	 *            invocation
+	 * @param largeInput supplier of the large-scale input. It can supply the same input or a different input on every
+	 *            invocation
+	 * @param before consumer to run before every experiment. May be <code>null</code>
+	 * @param experiment
+	 *            the experiment to run at each scale of input
+	 * @param after consumer to run after every experiment. May be <code>null</code>
+	 *
+	 * @param <T> the type of input for the {@code experiment}
+	 */
+	public static <T> void test(int iterations, double worstCaseMultiplier, //
+		Supplier<? extends T> smallInput, Supplier<? extends T> largeInput, //
+		Consumer<? super T> before, Consumer<? super T> experiment, Consumer<? super T> after) {
+
+		final Measure smallScale = time(iterations, bind(before, smallInput),
+			bind(experiment, smallInput), bind(after, smallInput));
+		System.out.println("Small scale: " + smallScale); //$NON-NLS-1$
+		final Measure largeScale = time(iterations, bind(before, largeInput),
+			bind(experiment, largeInput), bind(after, largeInput));
+		System.out.println("Large scale: " + largeScale); //$NON-NLS-1$
+
+		if (largeScale.average > worstCaseMultiplier * smallScale.average) {
+			fail(String.format("Performance does not scale:%n\t%s ≫ %s", largeScale, smallScale)); //$NON-NLS-1$
+		}
+	}
+
+	private static <T> Runnable bind(Consumer<? super T> hook, Supplier<T> input) {
+		return hook == null
+			? PerformanceClock::noop
+			: () -> hook.accept(input.get());
+	}
+
+	private static void noop() {
+		// do nothing
+	}
+
+	/** Average execution time and standard deviation of a performance experiment. */
+	public static final class Measure {
+		private final double average;
+		private final double stddev;
+
+		/**
+		 * Creates a new time measure.
+		 *
+		 * @param average The recorded average execution time
+		 * @param stddev The standard deviation
+		 */
+		public Measure(double average, double stddev) {
+			super();
+
+			this.average = average;
+			this.stddev = stddev;
+		}
+
+		/**
+		 * @return The average execution time
+		 */
+		public double average() {
+			return average;
+		}
+
+		/**
+		 * @return the standard deviation
+		 */
+		public double stddev() {
+			return stddev;
+		}
+
+		@Override
+		public String toString() {
+			return String.format("%.1f ms (σ = %.2f ms)", average, stddev); //$NON-NLS-1$
+		}
+	}
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.e3/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.e3/META-INF/MANIFEST.MF
index df0e077..9f4b853 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e3/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.e3/META-INF/MANIFEST.MF
@@ -2,42 +2,42 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Eclipse 3.x Integration
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.e3;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ui.platform.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: OSGI-INF/l10n/bundle
-Export-Package: org.eclipse.emf.ecp.ui.actions;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.commands;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.e3;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.linkedView;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.perspective;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.platform;version="1.19.0";x-friends:="org.eclipse.emf.ecp.emfstore.ui",
-  org.eclipse.emf.ecp.ui.tester;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.views;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.actions;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.commands;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.e3;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.linkedView;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.perspective;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.platform;version="1.20.0";x-friends:="org.eclipse.emf.ecp.emfstore.ui",
+ org.eclipse.emf.ecp.ui.tester;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.views;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.e3
 Eclipse-ExtensibleAPI: true
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.handlers;version="0.0.0",
-  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0",
-  org.eclipse.ui.services;version="0.0.0"
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.handlers;version="0.0.0",
+ org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0",
+ org.eclipse.ui.services;version="0.0.0"
diff --git a/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml b/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml
index 1514038..0ffcb54 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.e3/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.e3</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.ui.e4/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.e4/META-INF/MANIFEST.MF
index 257cde5..79723e9 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e4/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.e4/META-INF/MANIFEST.MF
@@ -2,34 +2,34 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP E4 UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.e4;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ui.internal.e4.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.e4.editor;version="1.19.0";x-friends:="org.eclipse.emf.ecp.application.e4",
-  org.eclipse.emf.ecp.ui.e4.handlers;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.e4.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.application.e4",
-  org.eclipse.emf.ecp.ui.e4.view;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.internal.e4;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.e4.editor;version="1.20.0";x-friends:="org.eclipse.emf.ecp.application.e4",
+ org.eclipse.emf.ecp.ui.e4.handlers;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.e4.util;version="1.20.0";x-friends:="org.eclipse.emf.ecp.application.e4",
+ org.eclipse.emf.ecp.ui.e4.view;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.internal.e4;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
-  org.eclipse.e4.ui.model.workbench;bundle-version="[0.10.0,3.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.ui.workbench.swt;bundle-version="[0.10.0,1.0.0)",
-  javax.inject;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.e4.core.di;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.ui.di;bundle-version="[0.10.0,2.0.0)",
-  org.eclipse.e4.ui.services;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.services;bundle-version="[1.0.0,3.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.e4.core.contexts;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
+ org.eclipse.e4.ui.model.workbench;bundle-version="[0.10.0,3.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.ui.workbench.swt;bundle-version="[0.10.0,1.0.0)",
+ javax.inject;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.ui.di;bundle-version="[0.10.0,2.0.0)",
+ org.eclipse.e4.ui.services;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.services;bundle-version="[1.0.0,3.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.annotation;version="1.1.0",
-  javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.osgi.service.event;version="1.3.0"
+ javax.inject;version="1.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.osgi.service.event;version="1.3.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.e4
diff --git a/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml b/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml
index 9d6c4fe..e50b38f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.e4/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.e4</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/.classpath b/bundles/org.eclipse.emf.ecp.ui.rap/.classpath
index 64c5e31..eca7bdb 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/.classpath
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.jdt.core.prefs
index 83b8580..0309974 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.rap/META-INF/MANIFEST.MF
index e77d7be..74915f6 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI RWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.rap
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.rap.filedialog;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.rap.rwt;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+ org.eclipse.rap.rwt;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="[1.0.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml b/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml
index 46c2265..2c6cc0e 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.rap/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.rap</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/.classpath b/bundles/org.eclipse.emf.ecp.ui.rcp/.classpath
index 64c5e31..eca7bdb 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/.classpath
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.jdt.core.prefs
index 83b8580..0309974 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.rcp/META-INF/MANIFEST.MF
index 42c4d23..6853c77 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.rcp
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.ui.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.swt;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.internal.ui.util.ECPFileDialogHelperImpl.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="[1.0.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml b/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml
index e2e382f..83adad1 100644
--- a/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.rcp/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.rcp</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.ui.transaction/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.transaction/META-INF/MANIFEST.MF
index c5256e8..603659e 100644
--- a/bundles/org.eclipse.emf.ecp.ui.transaction/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.transaction/META-INF/MANIFEST.MF
@@ -2,36 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Transactional UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.transaction;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.transaction;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.transaction;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.transaction;bundle-version="1.4.0",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.transaction
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.edit.ui.action;version="0.0.0",
-  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.dnd;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.handlers;version="0.0.0",
-  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0",
-  org.eclipse.ui.views.properties;ui.views=split;version="0.0.0"
+ org.eclipse.emf.edit.ui.action;version="0.0.0",
+ org.eclipse.emf.edit.ui.dnd;version="0.0.0",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.dnd;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.handlers;version="0.0.0",
+ org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0",
+ org.eclipse.ui.views.properties;ui.views=split;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml b/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml
index 7c4329d..30c6fd0 100644
--- a/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.transaction/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.transaction</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation.e4/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.validation.e4/META-INF/MANIFEST.MF
index 605f623..d1f5c0f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.validation.e4/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.validation.e4/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI Validation E4
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation.e4;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.validation.e4.handler;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.validation.e4.view;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.validation.e4.handler;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.validation.e4.view;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.e4.ui.workbench.swt;bundle-version="[0.10.0,1.0.0)",
-  org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.ui.di;bundle-version="[0.10.0,2.0.0)",
-  org.eclipse.jface;bundle-version="[3.9.1,4.0.0)",
-  org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
-  org.eclipse.e4.ui.services;bundle-version="[0.1.0,2.0.0)",
-  org.eclipse.e4.ui.model.workbench;bundle-version="[1.0.1,3.0.0)",
-  org.eclipse.core.expressions;bundle-version="[3.4.500,4.0.0)"
+ org.eclipse.e4.ui.workbench;bundle-version="[0.10.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.ui.di;bundle-version="[0.10.0,2.0.0)",
+ org.eclipse.jface;bundle-version="[3.9.1,4.0.0)",
+ org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.e4.ui.services;bundle-version="[0.1.0,2.0.0)",
+ org.eclipse.e4.ui.model.workbench;bundle-version="[1.0.1,3.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.500,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.validation.e4
 Import-Package: javax.annotation;version="1.1.0",
-  javax.inject;version="1.0.0",
-  org.eclipse.e4.core.di.annotations;version="0.0.0"
+ javax.inject;version="1.0.0",
+ org.eclipse.e4.core.di.annotations;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation.e4/pom.xml b/bundles/org.eclipse.emf.ecp.ui.validation.e4/pom.xml
index 3200a3d..4509503 100644
--- a/bundles/org.eclipse.emf.ecp.ui.validation.e4/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.validation.e4/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.validation.e4</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation.e4/src/org/eclipse/emf/ecp/ui/validation/e4/view/DiagnosticView.java b/bundles/org.eclipse.emf.ecp.ui.validation.e4/src/org/eclipse/emf/ecp/ui/validation/e4/view/DiagnosticView.java
index 95231c6..aa7a130 100644
--- a/bundles/org.eclipse.emf.ecp.ui.validation.e4/src/org/eclipse/emf/ecp/ui/validation/e4/view/DiagnosticView.java
+++ b/bundles/org.eclipse.emf.ecp.ui.validation.e4/src/org/eclipse/emf/ecp/ui/validation/e4/view/DiagnosticView.java
@@ -67,13 +67,11 @@
 							if (structuredSelection.size() == 1) {
 								selectionService
 									.setSelection(structuredSelection.getFirstElement());
-							}
-							else {
+							} else {
 								selectionService
 									.setSelection(structuredSelection.toList());
 							}
-						}
-						else {
+						} else {
 							selectionService.setSelection(null);
 						}
 					}
@@ -90,6 +88,29 @@
 	}
 
 	/**
+	 * Return the Tree showing the diagnostic data..
+	 *
+	 * @return The {@link TreeViewer} which contains the actual data
+	 */
+	public TreeViewer getDiagnosticTree() {
+		return diagnosticTree;
+	}
+
+	/**
+	 * Expand the diagnostic tree.
+	 */
+	public void expandAll() {
+		diagnosticTree.expandAll();
+	}
+
+	/**
+	 * Collapse the diagnostic tree.
+	 */
+	public void collapseAll() {
+		diagnosticTree.collapseAll();
+	}
+
+	/**
 	 * Sets the focus to the tree.
 	 */
 	@Focus
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.validation/META-INF/MANIFEST.MF
index 1ab8fa3..2744a12 100644
--- a/bundles/org.eclipse.emf.ecp.ui.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.validation/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation View
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.ui.validation.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui.validation;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ide.migration",
-  org.eclipse.emf.ecp.ui.validation;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4"
+Export-Package: org.eclipse.emf.ecp.internal.ui.validation;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ide.migration",
+ org.eclipse.emf.ecp.ui.validation;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.validation.e4"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.validation
 Service-Component: OSGI-INF/component.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml b/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml
index 03af1b0..e3e4e1f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.validation/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.validation</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/META-INF/MANIFEST.MF
index ef4b8cf..52070ea 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/META-INF/MANIFEST.MF
@@ -2,51 +2,51 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Controls
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.editor.controls.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.editor.controls;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.internal.editor.handler;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.model.project.installer,org.eclipse.emf.ecp.view.model.editor,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt",
-  org.eclipse.emf.ecp.view.spi.editor.controls;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.editor.controls;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.editor.handler;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.model.project.installer,org.eclipse.emf.ecp.view.model.editor,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt",
+ org.eclipse.emf.ecp.view.spi.editor.controls;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui;bundle-version="2.8.0",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.workspace.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui;bundle-version="2.8.0",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.eclipse.core.resources;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.editor.controls
 Service-Component: OSGI-INF/ControlRootEClassControl2SWTRendererService.xml,
  OSGI-INF/ControlRootEClassControlChangeableSWTRendererService.xml,
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/pom.xml
index 995a8de..8f3afc4 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java
index 2a8166d..d9e9873 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java
@@ -32,7 +32,7 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.impl.EReferenceImpl;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.edit.internal.swt.SWTImageHelper;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.DeleteReferenceAction;
 import org.eclipse.emf.ecp.edit.spi.swt.reference.NewReferenceAction;
@@ -407,7 +407,7 @@
 
 		@Override
 		public void widgetSelected(SelectionEvent e) {
-			final Collection<EClass> classes = ECPUtil.getSubClasses(((EReferenceImpl) eStructuralFeature)
+			final Collection<EClass> classes = EMFUtils.getSubClasses(((EReferenceImpl) eStructuralFeature)
 				.getEReferenceType());
 
 			final EClass eclass = Helper.getRootEClass(getViewModelContext().getDomainModel());
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRenderer.java
index bec988c..a4cabb8 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/LeafConditionControlRenderer.java
@@ -22,7 +22,7 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
 import org.eclipse.emf.ecp.view.internal.editor.handler.CreateDomainModelReferenceWizard;
@@ -97,7 +97,7 @@
 		if (EReference.class.isInstance(structuralFeature)) {
 			final EReference reference = EReference.class.cast(structuralFeature);
 			final EClass referenceType = reference.getEReferenceType();
-			final Collection<EClass> dmrEClasses = ECPUtil.getSubClasses(VViewPackage.eINSTANCE
+			final Collection<EClass> dmrEClasses = EMFUtils.getSubClasses(VViewPackage.eINSTANCE
 				.getDomainModelReference());
 			final Setting valueDMRSeting = ((LeafConditionImpl) condition).eSetting(RulePackage.eINSTANCE
 				.getLeafCondition_ValueDomainModelReference());
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControl.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControl.java
index 5146eca..ed0b037 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControl.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/TableColumnsDMRTableControl.java
@@ -37,7 +37,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.core.util.ECPUtil;
+import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.internal.ui.Messages;
 import org.eclipse.emf.ecp.spi.common.ui.CompositeFactory;
 import org.eclipse.emf.ecp.spi.common.ui.composites.SelectionComposite;
@@ -439,7 +439,7 @@
 			}
 			final EClass eclass = EReference.class.cast(valueProperty.getValueType()).getEReferenceType();
 
-			final Collection<EClass> classes = ECPUtil.getSubClasses(VViewPackage.eINSTANCE
+			final Collection<EClass> classes = EMFUtils.getSubClasses(VViewPackage.eINSTANCE
 				.getDomainModelReference());
 
 			final CreateDomainModelReferenceWizard wizard = new CreateDomainModelReferenceWizard(
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateControlsHandler.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateControlsHandler.java
index cde3b44..d016e21 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateControlsHandler.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/handler/GenerateControlsHandler.java
@@ -61,9 +61,14 @@
 			composedAdapterFactory);
 		final Set<EStructuralFeature> featuresToAdd = new LinkedHashSet<EStructuralFeature>();
 		IItemPropertyDescriptor propertyDescriptor = null;
+		final EClass rootClass = sad.getRootClass();
 		for (final EStructuralFeature feature : features) {
+			if (rootClass.isAbstract() || rootClass.isInterface()) {
+				featuresToAdd.add(feature);
+				continue;
+			}
 			propertyDescriptor = adapterFactoryItemDelegator
-				.getPropertyDescriptor(EcoreUtil.create(sad.getRootClass()), feature);
+				.getPropertyDescriptor(EcoreUtil.create(rootClass), feature);
 			if (propertyDescriptor != null) {
 				featuresToAdd.add(feature);
 			} else {
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/Helper.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/Helper.java
index 17e38d3..6dfd5e0 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/Helper.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/spi/editor/controls/Helper.java
@@ -24,6 +24,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.core.ECPProject;
 import org.eclipse.emf.ecp.core.util.ECPUtil;
@@ -197,8 +198,15 @@
 		final AdapterFactoryItemDelegator adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(
 			composedAdapterFactory);
 
+		EObject toCheck;
+		if (eClassToCheck.getInstanceClass() != null) {
+			toCheck = EcoreUtil.create(eClassToCheck);
+		} else {
+			toCheck = new DynamicEObjectImpl(eClassToCheck);
+		}
+
 		final IItemPropertyDescriptor propertyDescriptor = adapterFactoryItemDelegator
-			.getPropertyDescriptor(EcoreUtil.create(eClassToCheck), featureToCheck);
+			.getPropertyDescriptor(toCheck, featureToCheck);
 
 		composedAdapterFactory.dispose();
 		return propertyDescriptor != null;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/META-INF/MANIFEST.MF
index c84921c..692214b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP String Modifier with Line Wrapping
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.linewrapper;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui.view.linewrapper;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.internal.ui.view.linewrapper;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.linewrapper
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/pom.xml
index d0ebd91..9f3fdf7 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.linewrapper/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/META-INF/MANIFEST.MF
index 402d864..6462193 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dependency Injection SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt.di;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.view.swt.di.renderer;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.view.swt.di.util;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.4.1,2.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.ui.view.swt.di.renderer;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.swt.di.util;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.1,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.swt.di
-Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.locale;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0"
+Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.locale;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/pom.xml
index 0319158..d6195c8 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java
index d460395..0d51465 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIContainerSWTRenderer.java
@@ -19,7 +19,6 @@
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.swt.widgets.Composite;
 
@@ -39,11 +38,10 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 */
 	public DIContainerSWTRenderer(VElement vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java
index 40e18d7..57c530b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRenderer.java
@@ -22,7 +22,6 @@
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.widgets.Composite;
@@ -42,12 +41,11 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 * @param localeProvider The {@link EMFFormsLocaleProvider}
 	 */
 	public DIViewSWTRenderer(VView vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding, EMFFormsLocaleProvider localeProvider) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding, localeProvider);
+		EMFFormsRendererFactory factory, EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, reportService, factory, localeProvider);
 	}
 
 	private Object pojo;
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRendererService.java b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRendererService.java
index 6a93143..d2d5d4f 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRendererService.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt.di/src/org/eclipse/emf/ecp/ui/view/swt/di/renderer/DIViewSWTRendererService.java
@@ -16,7 +16,6 @@
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
@@ -31,7 +30,6 @@
  */
 public class DIViewSWTRendererService implements EMFFormsRendererService<VView> {
 
-	private EMFFormsDatabinding databindingService;
 	private EMFFormsRendererFactory rendererFactory;
 	private ReportService reportService;
 	private ServiceReference<EMFFormsRendererFactory> serviceReference;
@@ -57,24 +55,6 @@
 	}
 
 	/**
-	 * Called by the initializer to set the EMFFormsDatabinding.
-	 *
-	 * @param databindingService The EMFFormsDatabinding
-	 */
-	protected void setEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
-		this.databindingService = databindingService;
-	}
-
-	/**
-	 * Called by the initializer to unset the EMFFormsDatabinding.
-	 *
-	 * @param databindingService The EMFFormsDatabinding
-	 */
-	protected void unsetEMFFormsDatabinding(EMFFormsDatabinding databindingService) {
-		this.databindingService = null;
-	}
-
-	/**
 	 * Called by the initializer to set the ReportService.
 	 *
 	 * @param reportService The ReportService
@@ -131,8 +111,7 @@
 	 */
 	@Override
 	public AbstractSWTRenderer<VView> getRendererInstance(VView vElement, ViewModelContext viewModelContext) {
-		return new DIViewSWTRenderer(vElement, viewModelContext, reportService, rendererFactory, databindingService,
-			localeProvider);
+		return new DIViewSWTRenderer(vElement, viewModelContext, reportService, rendererFactory, localeProvider);
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.view.swt/META-INF/MANIFEST.MF
index 234497e..a51d150 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/META-INF/MANIFEST.MF
@@ -2,48 +2,51 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.swt.Activator
 Bundle-Vendor: %Bundle-Vendor
-Export-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.19.0",
-  org.eclipse.emf.ecp.ui.view.swt.reference;version="1.19.0",
-  org.eclipse.emf.ecp.view.internal.swt;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.context.test",
-  org.eclipse.emf.ecp.view.spi.swt;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.swt.layout;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.swt.reporting;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.20.0",
+ org.eclipse.emf.ecp.ui.view.swt.reference;version="1.20.0",
+ org.eclipse.emf.ecp.view.internal.swt;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.context.test",
+ org.eclipse.emf.ecp.view.spi.swt;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.swt.layout;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.swt.reporting;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.swt.services;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emfforms.core.bazaar;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.eclipse.jface;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component;version="[1.2.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.eclipse.jface;version="0.0.0",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component;version="[1.2.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.swt
-Service-Component: OSGI-INF/org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceServiceFactory.xml,OSGI-INF/DefaultCreateNewModelElementStrategyProvider.xml
+Service-Component: OSGI-INF/org.eclipse.emf.ecp.ui.view.swt.DefaultReferenceServiceFactory.xml,
+ OSGI-INF/DefaultCreateNewModelElementStrategyProvider.xml,
+ OSGI-INF/org.eclipse.emf.ecp.view.internal.swt.DefaultSelectionProviderServiceFactory.xml
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/org.eclipse.emf.ecp.view.internal.swt.DefaultSelectionProviderServiceFactory.xml b/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/org.eclipse.emf.ecp.view.internal.swt.DefaultSelectionProviderServiceFactory.xml
new file mode 100644
index 0000000..0098a0e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/OSGI-INF/org.eclipse.emf.ecp.view.internal.swt.DefaultSelectionProviderServiceFactory.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emf.ecp.view.internal.swt.DefaultSelectionProviderServiceFactory">
+   <service>
+      <provide interface="org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceFactory"/>
+   </service>
+   <implementation class="org.eclipse.emf.ecp.view.internal.swt.DefaultSelectionProviderServiceFactory"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view.swt/pom.xml
index 2182c7d..a15d5cb 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategy.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategy.java
index 5dc7793..4230cd4 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategy.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/ui/view/swt/reference/ReferenceStrategy.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2018 Christian W. Damus and others.
+ * Copyright (c) 2018, 2019 Christian W. Damus and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -38,11 +38,7 @@
 		public boolean addElementsToReference(EObject owner, EReference reference, Set<? extends EObject> objects) {
 			final EditingDomain domain = AdapterFactoryEditingDomain.getEditingDomainFor(owner);
 
-			// The ECPControlHelper generic signature is wrong. It should be an upper bound,
-			// but because this utility never actually adds to the set, this cast is safe
-			@SuppressWarnings("unchecked")
-			final Set<EObject> objectsToAdd = (Set<EObject>) objects;
-			ECPControlHelper.addModelElementsInReference(owner, objectsToAdd, reference, domain);
+			ECPControlHelper.addModelElementsInReference(owner, objects, reference, domain);
 
 			return true;
 		}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/DefaultSelectionProviderServiceFactory.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/DefaultSelectionProviderServiceFactory.java
new file mode 100644
index 0000000..d8fdd38
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/internal/swt/DefaultSelectionProviderServiceFactory.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.swt;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.swt.services.DefaultSelectionProviderService;
+import org.eclipse.emf.ecp.view.spi.swt.services.ECPSelectionProviderService;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceFactory;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServicePolicy;
+import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewServiceScope;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Factory for the default {@link ECPSelectionProviderService} implementation.
+ */
+@Component
+public class DefaultSelectionProviderServiceFactory implements EMFFormsViewServiceFactory<ECPSelectionProviderService> {
+
+	/**
+	 * Initializes me.
+	 */
+	public DefaultSelectionProviderServiceFactory() {
+		super();
+	}
+
+	@Override
+	public EMFFormsViewServicePolicy getPolicy() {
+		return EMFFormsViewServicePolicy.LAZY;
+	}
+
+	@Override
+	public EMFFormsViewServiceScope getScope() {
+		return EMFFormsViewServiceScope.GLOBAL;
+	}
+
+	@Override
+	public double getPriority() {
+		return 0;
+	}
+
+	@Override
+	public Class<ECPSelectionProviderService> getType() {
+		return ECPSelectionProviderService.class;
+	}
+
+	@Override
+	public ECPSelectionProviderService createService(EMFFormsViewContext emfFormsViewContext) {
+		if (!(emfFormsViewContext instanceof ViewModelContext)) {
+			throw new IllegalArgumentException("emfFormsViewContext not a view model context"); //$NON-NLS-1$
+		}
+
+		final ViewModelContext viewModelContext = (ViewModelContext) emfFormsViewContext;
+		final ECPSelectionProviderService result = new DefaultSelectionProviderService();
+		result.instantiate(viewModelContext);
+		return result;
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/services/DefaultSelectionProviderService.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/services/DefaultSelectionProviderService.java
new file mode 100644
index 0000000..327e767
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/services/DefaultSelectionProviderService.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.services;
+
+import static java.util.Collections.singleton;
+import static java.util.Objects.requireNonNull;
+import static org.eclipse.emf.ecore.util.EcoreUtil.getAllContents;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.model.ModelChangeAddRemoveListener;
+import org.eclipse.emf.ecp.view.spi.model.ModelChangeNotification;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+/**
+ * A selection provider service that simply delegates the selection provider API
+ * to the selection provider registered for the "top-most" element in the view model,
+ * where "top-most" is the first element in a depth-first traversal.
+ *
+ * @since 1.20
+ */
+public class DefaultSelectionProviderService implements ECPSelectionProviderService {
+
+	private final Map<VElement, ISelectionProvider> registeredProviders = new HashMap<VElement, ISelectionProvider>();
+
+	private ViewModelContext context;
+	private DelegatingSelectionProvider selectionProvider;
+	private ModelChangeAddRemoveListener viewListener;
+
+	/**
+	 * Initializes me.
+	 */
+	public DefaultSelectionProviderService() {
+		super();
+	}
+
+	@Override
+	public void instantiate(ViewModelContext context) {
+		this.context = context;
+		selectionProvider = new DelegatingSelectionProvider();
+
+		viewListener = createViewListener();
+		context.registerViewChangeListener(viewListener);
+	}
+
+	@Override
+	public void dispose() {
+		registeredProviders.clear();
+		selectionProvider = null;
+
+		if (context != null) {
+			context.unregisterViewChangeListener(viewListener);
+			viewListener = null;
+			context = null;
+		}
+	}
+
+	@Override
+	public int getPriority() {
+		return 0;
+	}
+
+	@Override
+	public ISelectionProvider getSelectionProvider() {
+		return selectionProvider;
+	}
+
+	@Override
+	public void registerSelectionProvider(VElement element, ISelectionProvider selectionProvider) {
+		if (registeredProviders.put(requireNonNull(element), requireNonNull(selectionProvider)) != selectionProvider) {
+			update();
+		}
+	}
+
+	private void update() {
+		ISelectionProvider delegate = null;
+
+		// Find the "top-most" selection provider
+		for (final Iterator<EObject> iter = getAllContents(singleton(context.getViewModel())); delegate == null
+			&& iter.hasNext();) {
+			delegate = registeredProviders.get(iter.next());
+		}
+
+		selectionProvider.setDelegate(delegate);
+	}
+
+	/**
+	 * Create a listener that detects removal of elements from the view model
+	 * and updates our selection-provider registration (and delegation) accordingly.
+	 *
+	 * @return the view model listener
+	 */
+	private ModelChangeAddRemoveListener createViewListener() {
+		return new ModelChangeAddRemoveListener() {
+
+			@Override
+			public void notifyRemove(Notifier notifier) {
+				if (registeredProviders.remove(notifier) != null) {
+					update();
+				}
+			}
+
+			@Override
+			public void notifyAdd(Notifier notifier) {
+				// Not interesting. We would need a registration call
+
+			}
+
+			@Override
+			public void notifyChange(ModelChangeNotification notification) {
+				// Not interesting
+			}
+
+		};
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * A selection provider that delegates to the "top-most" registered provider.
+	 */
+	private static class DelegatingSelectionProvider implements ISelectionProvider {
+
+		private ISelectionProvider delegate;
+
+		private final ISelectionChangedListener delegateListener = this::selectionChanged;
+		private final ListenerList<ISelectionChangedListener> listeners = new ListenerList<>();
+
+		DelegatingSelectionProvider() {
+			super();
+		}
+
+		@Override
+		public ISelection getSelection() {
+			return delegate == null ? StructuredSelection.EMPTY : delegate.getSelection();
+		}
+
+		@Override
+		public void setSelection(ISelection selection) {
+			if (delegate != null) {
+				delegate.setSelection(selection);
+			}
+		}
+
+		@Override
+		public void addSelectionChangedListener(ISelectionChangedListener listener) {
+			listeners.add(listener);
+		}
+
+		@Override
+		public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+			listeners.remove(listener);
+		}
+
+		void setDelegate(ISelectionProvider delegate) {
+			if (delegate == this.delegate) {
+				return;
+			}
+
+			if (this.delegate != null) {
+				this.delegate.removeSelectionChangedListener(delegateListener);
+			}
+
+			this.delegate = delegate;
+
+			if (this.delegate != null) {
+				this.delegate.addSelectionChangedListener(delegateListener);
+				fireSelection(delegate.getSelection());
+			}
+		}
+
+		void selectionChanged(SelectionChangedEvent event) {
+			fireSelection(event.getSelection());
+		}
+
+		private void fireSelection(ISelection selection) {
+			if (!listeners.isEmpty()) {
+				final SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
+				listeners.forEach(l -> l.selectionChanged(event));
+			}
+		}
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/services/ECPSelectionProviderService.java b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/services/ECPSelectionProviderService.java
new file mode 100644
index 0000000..3569a5f
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.ui.view.swt/src/org/eclipse/emf/ecp/view/spi/swt/services/ECPSelectionProviderService.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.swt.services;
+
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelService;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+/**
+ * A mediator of selection providers for the {@link ViewModelContext}, to provide
+ * a coherent selection provider for the rendering of a view.
+ *
+ * @since 1.20
+ */
+public interface ECPSelectionProviderService extends ViewModelService {
+
+	/**
+	 * Obtain a selection provider that aggregates the selection in the
+	 * view model context. This should be suitable for use as, for example,
+	 * the selection provider of an Eclipse workbench part site. The
+	 * selection provider is never {@code null}, but if there are no
+	 * registered providers to which it can delegate, it may have no useful effect.
+	 *
+	 * @return the selection provider
+	 */
+	ISelectionProvider getSelectionProvider();
+
+	/**
+	 * Register a selection provider for a given {@code element}. The effect
+	 * is undefined if the {@code element} already has a provider registered.
+	 * It is probably a good practice that only the renderer of the {@code element}
+	 * be responsible for registering a selection provider for it.
+	 *
+	 * @param element an element in the view model
+	 * @param selectionProvider a selection provider to register for it
+	 *
+	 * @throws NullPointerException if the either the element or the selection provider is {@code null}
+	 */
+	void registerSelectionProvider(VElement element, ISelectionProvider selectionProvider);
+
+}
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui.view/META-INF/MANIFEST.MF
index 8d10d3b..c7f1c8d 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui.view/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MPI UI View
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.ui.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ui.view;version="1.19.0",
-  org.eclipse.emf.ecp.view.internal.provider;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.context.test",
-  org.eclipse.emf.ecp.view.internal.ui;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
-  org.eclipse.emf.ecp.view.spi.provider;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.provider.reporting;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.renderer;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.ui.view;version="1.20.0",
+ org.eclipse.emf.ecp.view.internal.provider;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.context.test",
+ org.eclipse.emf.ecp.view.internal.ui;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
+ org.eclipse.emf.ecp.view.spi.provider;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.provider.reporting;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.renderer;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)"
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view
 Service-Component: OSGI-INF/EMFFormsViewService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.ui.view/pom.xml b/bundles/org.eclipse.emf.ecp.ui.view/pom.xml
index 9569053..ce4641b 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui.view/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF
index a9bb91a..d717e28 100644
--- a/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.ui/META-INF/MANIFEST.MF
@@ -2,77 +2,77 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.ui.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.ui;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.explorereditorbridge,
-    org.eclipse.emf.ecp.edit.ecore.swt,
-    org.eclipse.emf.ecp.emfstore.ui,
-    org.eclipse.emf.ecp.ui.rcp",
-  org.eclipse.emf.ecp.internal.ui.composites;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.internal.ui.dialogs;version="1.19.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
-  org.eclipse.emf.ecp.internal.ui.model;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.e4,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.transaction",
-  org.eclipse.emf.ecp.internal.ui.tester;version="1.19.0",
-  org.eclipse.emf.ecp.internal.ui.util;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.explorereditorbridge,
-    org.eclipse.emf.ecp.ui.e3,
-    org.eclipse.emf.ecp.ui.e4,
-    org.eclipse.emf.ecp.emfstore.ui.e3,
-    org.eclipse.emf.ecp.validationvieweditorbridge,
-    org.eclipse.emf.ecp.emfstore.ui,
-    org.eclipse.emf.ecp.ui.rcp",
-  org.eclipse.emf.ecp.internal.wizards;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,
-    org.eclipse.emf.ecp.explorereditorbridge,
-    org.eclipse.emf.ecp.workspace.ui,
-    org.eclipse.emf.ecp.view.table.editor,
-    org.eclipse.emf.ecp.emfstore.ui",
-  org.eclipse.emf.ecp.internal.wizards.page;version="1.19.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
-  org.eclipse.emf.ecp.spi.ui;version="1.19.0",
-  org.eclipse.emf.ecp.spi.ui.util;version="1.19.0",
-  org.eclipse.emf.ecp.ui;version="1.19.0",
-  org.eclipse.emf.ecp.ui.common;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,
-    org.eclipse.emf.ecp.explorereditorbridge,
-    org.eclipse.emf.ecp.ui.e3,
-    org.eclipse.emf.ecp.view.table.editor,
-    org.eclipse.emf.ecp.view.ui.editor.test,
-    org.eclipse.emf.ecp.workspace.ui,
-    org.eclipse.emf.ecp.ui.e4",
-  org.eclipse.emf.ecp.ui.common.dnd;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
-  org.eclipse.emf.ecp.ui.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.internal.ui;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.explorereditorbridge,
+   org.eclipse.emf.ecp.edit.ecore.swt,
+   org.eclipse.emf.ecp.emfstore.ui,
+   org.eclipse.emf.ecp.ui.rcp",
+ org.eclipse.emf.ecp.internal.ui.composites;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.internal.ui.dialogs;version="1.20.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
+ org.eclipse.emf.ecp.internal.ui.model;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.e4,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.transaction",
+ org.eclipse.emf.ecp.internal.ui.tester;version="1.20.0",
+ org.eclipse.emf.ecp.internal.ui.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.explorereditorbridge,
+   org.eclipse.emf.ecp.ui.e3,
+   org.eclipse.emf.ecp.ui.e4,
+   org.eclipse.emf.ecp.emfstore.ui.e3,
+   org.eclipse.emf.ecp.validationvieweditorbridge,
+   org.eclipse.emf.ecp.emfstore.ui,
+   org.eclipse.emf.ecp.ui.rcp",
+ org.eclipse.emf.ecp.internal.wizards;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,
+   org.eclipse.emf.ecp.explorereditorbridge,
+   org.eclipse.emf.ecp.workspace.ui,
+   org.eclipse.emf.ecp.view.table.editor,
+   org.eclipse.emf.ecp.emfstore.ui",
+ org.eclipse.emf.ecp.internal.wizards.page;version="1.20.0";x-friends:="org.eclipse.emf.ecp.explorereditorbridge",
+ org.eclipse.emf.ecp.spi.ui;version="1.20.0",
+ org.eclipse.emf.ecp.spi.ui.util;version="1.20.0",
+ org.eclipse.emf.ecp.ui;version="1.20.0",
+ org.eclipse.emf.ecp.ui.common;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.edit.ecore.swt,
+   org.eclipse.emf.ecp.explorereditorbridge,
+   org.eclipse.emf.ecp.ui.e3,
+   org.eclipse.emf.ecp.view.table.editor,
+   org.eclipse.emf.ecp.view.ui.editor.test,
+   org.eclipse.emf.ecp.workspace.ui,
+   org.eclipse.emf.ecp.ui.e4",
+ org.eclipse.emf.ecp.ui.common.dnd;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls",
+ org.eclipse.emf.ecp.ui.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.edit.ui.action;version="0.0.0",
-  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.dnd;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.handlers;version="0.0.0",
-  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0",
-  org.eclipse.ui.views.properties;ui.views=split;version="0.0.0"
+ org.eclipse.emf.edit.ui.action;version="0.0.0",
+ org.eclipse.emf.edit.ui.dnd;version="0.0.0",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.dnd;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.handlers;version="0.0.0",
+ org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0",
+ org.eclipse.ui.views.properties;ui.views=split;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.ui
diff --git a/bundles/org.eclipse.emf.ecp.ui/pom.xml b/bundles/org.eclipse.emf.ecp.ui/pom.xml
index 59d8d8d..8084cd2 100644
--- a/bundles/org.eclipse.emf.ecp.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.ui/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/ECPReferenceServiceImpl.java b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/ECPReferenceServiceImpl.java
index 7dd9334..7d81dd4 100644
--- a/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/ECPReferenceServiceImpl.java
+++ b/bundles/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/spi/ui/ECPReferenceServiceImpl.java
@@ -21,6 +21,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecp.common.spi.EMFUtils;
 import org.eclipse.emf.ecp.core.ECPProject;
 import org.eclipse.emf.ecp.core.util.ECPUtil;
 import org.eclipse.emf.ecp.edit.spi.ReferenceService;
@@ -98,7 +99,7 @@
 			return Optional.empty();
 		}
 		EObject newModelElement = null;
-		final Collection<EClass> classes = ECPUtil.getSubClasses(eReference.getEReferenceType());
+		final Collection<EClass> classes = EMFUtils.getSubClasses(eReference.getEReferenceType());
 
 		if (classes.size() > 1) {
 			final SelectionComposite<TreeViewer> helper = ECPCompositeFactory.getSelectModelClassComposite(
diff --git a/bundles/org.eclipse.emf.ecp.validation.connector/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.validation.connector/META-INF/MANIFEST.MF
index d44e0db..cd8c325 100644
--- a/bundles/org.eclipse.emf.ecp.validation.connector/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.validation.connector/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation Connector Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.connector;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.validation.connector.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.validation.connector;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.validation.connector;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0"
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.validation.connector
diff --git a/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml b/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml
index 3e96268..85d86e7 100644
--- a/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.validation.connector/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.validation.connector</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.validation/META-INF/MANIFEST.MF
index c9479b4..94f69aa 100644
--- a/bundles/org.eclipse.emf.ecp.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.validation/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.validation;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.validation.api;version="1.19.0";x-friends:="org.eclipse.emf.ecp.validation.connector"
+Export-Package: org.eclipse.emf.ecp.internal.validation;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.api;version="1.20.0";x-friends:="org.eclipse.emf.ecp.validation.connector"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="2.8.0",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="2.8.0",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.validation
 Service-Component: OSGI-INF/validationService.xml
diff --git a/bundles/org.eclipse.emf.ecp.validation/pom.xml b/bundles/org.eclipse.emf.ecp.validation/pom.xml
index e12821b..32a7e6f 100644
--- a/bundles/org.eclipse.emf.ecp.validation/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.validation/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.validation</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/META-INF/MANIFEST.MF
index a6743e6..51d7b59 100644
--- a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation View to Editor Bridge
 Bundle-SymbolicName: org.eclipse.emf.ecp.validationvieweditorbridge;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.validationvieweditorbridge;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.validation;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.internal.validationvieweditorbridge;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.validation;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.validationvieweditorbridge
 Import-Package: org.eclipse.jface.viewers;version="0.0.0"
diff --git a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/pom.xml b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/pom.xml
index cc7436d..e21b075 100644
--- a/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.validationvieweditorbridge/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.validationvieweditorbridge</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/META-INF/MANIFEST.MF
index 43e2c9b..8d27580 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.categorization.model.provider.CategorizationEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.categorization.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/pom.xml
index 66af793..cb8c691 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.categorization.model/META-INF/MANIFEST.MF
index d1e72e1..3ff2fba 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.categorization.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.categorization.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.categorization.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.categorization.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.categorization.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.categorization.model
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.categorization.model/pom.xml
index edc4360..7507f39 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.categorization.swt/META-INF/MANIFEST.MF
index 0f8ce45..90c22f1 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/META-INF/MANIFEST.MF
@@ -2,38 +2,38 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Categorization SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.categorization.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.categorization.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.categorization.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.20.0,1.21.0)"
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.core.databinding.property.value;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.categorization.swt
 Service-Component: OSGI-INF/categorizationElementTabbedRendererService.xml,OSGI-INF/compositeCategoryTreeRendererService.xml,OSGI-INF/compositeCategoryTabRendererService.xml,OSGI-INF/swtCategorizationElementRendererService.xml,OSGI-INF/swtCategorizationRendererService.xml,OSGI-INF/swtCategoryRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.categorization.swt/pom.xml
index 99478dc..5943245 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java
index 2769e0d..af77682 100644
--- a/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.categorization.swt/src/org/eclipse/emf/ecp/view/spi/categorization/swt/SWTCategoryRenderer.java
@@ -22,7 +22,6 @@
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
@@ -40,13 +39,12 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 * @since 1.6
 	 */
 	@Inject
 	public SWTCategoryRenderer(VCategory vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 	}
 
 	/**
@@ -94,7 +92,7 @@
 	// .getLog()
 	// .log(
 	// new Status(IStatus.INFO, Activator.PLUGIN_ID, String.format(
-	//						"No Renderer for %s found.", getVElement().getComposite().eClass().getName()))); //$NON-NLS-1$
+	// "No Renderer for %s found.", getVElement().getComposite().eClass().getName()))); //$NON-NLS-1$
 	// return categoryComposite;
 	// }
 	// final SWTGridDescription gridDescription = renderer.getGridDescription(GridDescriptionFactory.INSTANCE
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/META-INF/MANIFEST.MF
index 3b17228..ee9404a 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.compoundcontrol.model.provider.HorizontalEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.compoundcontrol.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/pom.xml
index 9a6fa5d..12af923 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/META-INF/MANIFEST.MF
index e23d5df..c75487d 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.compoundcontrol.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.compoundcontrol.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.compoundcontrol.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.compoundcontrol.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.compoundcontrol.model
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/pom.xml
index 59e2dc8..3a421c1 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/META-INF/MANIFEST.MF
index 52c397d..2ed1a50 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/META-INF/MANIFEST.MF
@@ -2,29 +2,29 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Compound Control SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.compoundcontrol.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.compoundcontrol.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/CompoundControlDIRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.compoundcontrol.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/pom.xml
index 96ae343..d8c59fe 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/META-INF/MANIFEST.MF
index 78f3f5c..b7fedd5 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Compound Control Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.tooling;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/pom.xml b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/pom.xml
index 7eb1f7e..b72ad09 100644
--- a/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.compoundcontrol.tooling/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.context.locale/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.context.locale/META-INF/MANIFEST.MF
index 15ac3d0..89bc7c8 100644
--- a/bundles/org.eclipse.emf.ecp.view.context.locale/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.context.locale/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Locale View Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.context.locale;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.context.internal.locale;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.context.internal.locale;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.context.locale
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.context.locale/pom.xml b/bundles/org.eclipse.emf.ecp.view.context.locale/pom.xml
index fc46f71..295bff2 100644
--- a/bundles/org.eclipse.emf.ecp.view.context.locale/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.context.locale/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.context.locale</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.context/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.context/META-INF/MANIFEST.MF
index aefc58b..a2db9ff 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.context/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Context
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.context;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.context;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.context;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.context;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.context;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.context
-Import-Package: org.eclipse.emfforms.common;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emfforms.common;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.context/pom.xml b/bundles/org.eclipse.emf.ecp.view.context/pom.xml
index bd0f7da..d480209 100644
--- a/bundles/org.eclipse.emf.ecp.view.context/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.context/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.control.multireference/META-INF/MANIFEST.MF
index fdd72cf..a14b4ef 100644
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/META-INF/MANIFEST.MF
@@ -2,40 +2,40 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Multireference
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.control.multireference;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.control.multireference;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.control.multireference;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.annotation.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/multiReferenceRendererService.xml,OSGI-INF/LinkOnlyMultiReferenceRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.internal.core.services.label;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.3.0",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.internal.core.services.label;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.3.0",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.control.multireference
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/pom.xml b/bundles/org.eclipse.emf.ecp.view.control.multireference/pom.xml
index 0f3e00b..c12fc6e 100644
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>
 
   <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceSWTRenderer.java
index d466c0f..0c9a8ea 100644
--- a/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.control.multireference/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceSWTRenderer.java
@@ -62,6 +62,7 @@
 import org.eclipse.emfforms.internal.core.services.label.BundleResolverImpl;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.common.sort.NumberAwareStringComparator;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
@@ -72,6 +73,7 @@
 import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.emfforms.spi.swt.core.ui.ObjectViewerComparator;
 import org.eclipse.jface.databinding.swt.WidgetProperties;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.layout.GridDataFactory;
@@ -85,12 +87,12 @@
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
 import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -214,7 +216,28 @@
 	 * @return true if the 'AddExisting' button is shown, false otherwise
 	 */
 	protected boolean showAddExistingButton() {
-		return true;
+		EReference eReference = null;
+		try {
+			eReference = (EReference) getModelValue().getValueType();
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new AbstractReport(ex));
+		}
+
+		if (eReference != null) {
+			// Always show the add existing button for cross references
+			if (!eReference.isContainment()) {
+				return true;
+			}
+
+			VTReferenceStyleProperty referenceStyle = RendererUtil.getStyleProperty(
+				getVTViewTemplateProvider(), getVElement(), getViewModelContext(), VTReferenceStyleProperty.class);
+			if (referenceStyle == null) {
+				referenceStyle = getDefaultReferenceStyle();
+			}
+			return referenceStyle.isShowLinkButtonForContainmentReferences();
+		}
+
+		return false;
 	}
 
 	/**
@@ -349,7 +372,7 @@
 			getReportService().report(new RenderingFailedReport(ex));
 			return createErrorLabel(composite, ex);
 		}
-		updateButtonEnabling();
+		updateButtons();
 		return composite;
 	}
 
@@ -402,7 +425,8 @@
 		}
 
 		if (getTableStyleProperty().getRenderMode() == RenderMode.DEFAULT) {
-			updateButtonEnabling();
+			initButtons();
+			updateButtons();
 		}
 
 		SWTDataElementIdHelper.setElementIdDataForVControl(composite, getVElement(), getViewModelContext());
@@ -410,6 +434,15 @@
 		return composite;
 	}
 
+	private void initButtons() {
+		getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
+			@Override
+			public void selectionChanged(SelectionChangedEvent event) {
+				updateButtonEnabling();
+			}
+		});
+	}
+
 	/**
 	 * Creates the composite which will be the parent for the table.
 	 *
@@ -519,7 +552,7 @@
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
 				handleMoveUp(tableViewer, container, structuralFeature);
-				updateButtonEnabling();
+				updateButtons();
 			}
 
 		});
@@ -551,7 +584,7 @@
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
 				handleMoveDown(tableViewer, container, structuralFeature);
-				updateButtonEnabling();
+				updateButtons();
 			}
 
 		});
@@ -583,7 +616,7 @@
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
 				handleAddExisting(tableViewer, container, structuralFeature);
-				updateButtonEnabling();
+				updateButtons();
 			}
 
 		});
@@ -615,7 +648,7 @@
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
 				handleAddNew(tableViewer, container, structuralFeature);
-				updateButtonEnabling();
+				updateButtons();
 			}
 
 		});
@@ -646,33 +679,89 @@
 			public void widgetSelected(SelectionEvent e) {
 				super.widgetSelected(e);
 				handleDelete(tableViewer, container, structuralFeature);
-				updateButtonEnabling();
+				updateButtons();
 			}
 		});
 		return btnDelete;
 	}
 
 	/**
-	 * Updates the 'addExisting', 'addNew', 'delete', 'moveUp' and 'moveDown' buttons according to the bound input.
+	 * Updates button visibility and enablement.
+	 */
+	protected void updateButtons() {
+		updateButtonVisibility();
+		updateButtonEnabling();
+	}
+
+	/**
+	 * Updates the enablement of 'addExisting', 'addNew', 'delete', 'moveUp' and 'moveDown' buttons according to the
+	 * bound input.
 	 */
 	protected void updateButtonEnabling() {
-		final boolean isReadOnly = getVElement().isEffectivelyReadonly();
+		final boolean isEnable = getVElement().isEffectivelyEnabled();
 		final int listSize = tableViewerInputList != null ? tableViewerInputList.size() : 0;
+		final int selectionIndex = tableViewer != null ? tableViewer.getTable().getSelectionIndex() : -1;
 
-		if (showMoveUpButton()) {
-			btnMoveUp.setEnabled(!isReadOnly && listSize > 1);
+		enableUpButton(isEnable, listSize, selectionIndex);
+		enableDownButton(isEnable, listSize, selectionIndex);
+		enableAddExistingButton(isEnable, listSize, selectionIndex);
+		enableAddNewButton(isEnable, listSize, selectionIndex);
+		enableDeleteButton(isEnable, listSize, selectionIndex);
+	}
+
+	private void enableUpButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (btnMoveUp != null && showMoveUpButton()) {
+			final boolean enabled = baseEnable && listSize > 1 && selectionIndex > 0;
+			btnMoveUp.setEnabled(enabled);
 		}
-		if (showMoveDownButton()) {
-			btnMoveDown.setEnabled(!isReadOnly && listSize > 1);
+	}
+
+	private void enableDownButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (btnMoveDown != null && showMoveDownButton()) {
+			final boolean enabled = baseEnable && listSize > 1 && selectionIndex != -1 && selectionIndex < listSize - 1;
+			btnMoveDown.setEnabled(enabled);
 		}
-		if (showAddExistingButton()) {
-			btnAddExisting.setEnabled(!isReadOnly);
+	}
+
+	private void enableAddExistingButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (btnAddExisting != null && showAddExistingButton()) {
+			btnAddExisting.setEnabled(baseEnable);
 		}
-		if (showAddNewButton()) {
-			btnAddNew.setEnabled(!isReadOnly);
+	}
+
+	private void enableAddNewButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (btnAddNew != null && showAddNewButton()) {
+			btnAddNew.setEnabled(baseEnable);
 		}
-		if (showDeleteButton()) {
-			btnDelete.setEnabled(!isReadOnly && listSize > 0);
+	}
+
+	private void enableDeleteButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (btnDelete != null && showDeleteButton()) {
+			btnDelete.setEnabled(baseEnable && listSize > 0 && selectionIndex != -1);
+		}
+	}
+
+	/**
+	 * Updates the visibility of 'addExisting', 'addNew', 'delete', 'moveUp' and 'moveDown' buttons according to the
+	 * bound input.
+	 */
+	protected void updateButtonVisibility() {
+		final boolean isVisible = !getVElement().isEffectivelyReadonly();
+
+		if (btnMoveUp != null) {
+			btnMoveUp.setVisible(showMoveUpButton() && isVisible);
+		}
+		if (btnMoveDown != null) {
+			btnMoveDown.setVisible(showMoveDownButton() && isVisible);
+		}
+		if (btnAddExisting != null) {
+			btnAddExisting.setVisible(showAddExistingButton() && isVisible);
+		}
+		if (btnAddNew != null) {
+			btnAddNew.setVisible(showAddNewButton() && isVisible);
+		}
+		if (btnDelete != null) {
+			btnDelete.setVisible(showDeleteButton() && isVisible);
 		}
 	}
 
@@ -809,6 +898,9 @@
 		final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tableViewer) {
 			@Override
 			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
+				if (getVElement().isEffectivelyReadonly()) {
+					return false;
+				}
 				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
 					|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
 					|| event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR
@@ -821,8 +913,8 @@
 			| ColumnViewerEditor.KEYBOARD_ACTIVATION);
 		ColumnViewerToolTipSupport.enableFor(tableViewer);
 
-		final ECPTableViewerComparator comparator = new ECPTableViewerComparator();
-		final boolean isMoveDisabled = !showMoveUpButton() && !showMoveDownButton();
+		final ObjectViewerComparator comparator = new ObjectViewerComparator(this::compare);
+		final boolean isMoveDisabled = isMoveDisabled();
 		if (isMoveDisabled) {
 			tableViewer.setComparator(comparator);
 		}
@@ -873,16 +965,22 @@
 
 			@Override
 			public void doubleClick(DoubleClickEvent event) {
-				final EObject selectedObject = (EObject) IStructuredSelection.class.cast(event.getSelection())
-					.getFirstElement();
-				handleDoubleClick(selectedObject);
+				if (!getVElement().isEffectivelyReadonly()) {
+					final EObject selectedObject = (EObject) IStructuredSelection.class.cast(event.getSelection())
+						.getFirstElement();
+					handleDoubleClick(selectedObject);
+				}
 			}
 
 		});
 	}
 
+	private boolean isMoveDisabled() {
+		return !showMoveUpButton() && !showMoveDownButton();
+	}
+
 	private SelectionAdapter getSelectionAdapter(final TableViewer tableViewer,
-		final ECPTableViewerComparator comparator, final TableColumn column) {
+		final ObjectViewerComparator comparator, final TableColumn column) {
 		final SelectionAdapter selectionAdapter = new SelectionAdapter() {
 			@Override
 			public void widgetSelected(SelectionEvent e) {
@@ -1022,47 +1120,6 @@
 		}
 	}
 
-	/**
-	 * The {@link ViewerComparator} for the multi reference renderer's table which allows 3 states for sort order:
-	 * none, up and down. This comparator does not use column specific values but only the objects' labels because the
-	 * multi reference renderer always only has one column that shows the label.
-	 *
-	 * @author Eugen Neufeld
-	 *
-	 */
-	private class ECPTableViewerComparator extends ViewerComparator {
-		private static final int NONE = 0;
-		private int direction = NONE;
-
-		ECPTableViewerComparator() {
-			direction = NONE;
-		}
-
-		/** Toggles through the sorting directions: NONE -&gt; UP -&gt; DOWN -&gt; NONE. */
-		public void toggleDirection() {
-			direction = (direction + 1) % 3;
-		}
-
-		public int getDirection() {
-			switch (direction) {
-			case 0:
-				return SWT.NONE;
-			case 1:
-				return SWT.UP;
-			case 2:
-				return SWT.DOWN;
-			default:
-				return SWT.NONE;
-			}
-
-		}
-
-		@Override
-		public int compare(Viewer viewer, Object e1, Object e2) {
-			return MultiReferenceSWTRenderer.this.compare(direction, e1, e2);
-		}
-	}
-
 	@Override
 	protected void rootDomainModelChanged() throws DatabindingFailedException {
 		// TODO rebinding of text and tooltip needed? If yes, complete!
@@ -1086,10 +1143,32 @@
 			.getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
 		container = (EObject) ((IObserving) observableValue).getObserved();
 		observableValue.dispose();
+		applyEnable();
+		applyReadOnly();
+	}
+
+	@Override
+	protected boolean ignoreEnableOnReadOnly() {
+		// always take the enable state into account (read only but enable let the user sort the table content for
+		// example)
+		return false;
+	}
+
+	@Override
+	protected void applyEnable() {
+		super.applyEnable();
+		// specific handling for buttons
 		updateButtonEnabling();
 	}
 
 	@Override
+	protected void applyReadOnly() {
+		// specific handling for buttons
+		// do not let the super method disable the control, so the table is still enabled for sorting for example
+		updateButtonVisibility();
+	}
+
+	@Override
 	protected void applyValidation() {
 		Display.getDefault().asyncExec(new Runnable() {
 
@@ -1134,11 +1213,15 @@
 		final String label1 = labelProvider.getText(object1);
 		final String label2 = labelProvider.getText(object2);
 		if (label1 == null) {
-			rc = 1;
+			if (label2 == null) {
+				rc = 0;
+			} else {
+				rc = 1;
+			}
 		} else if (label2 == null) {
 			rc = -1;
 		} else {
-			rc = label1.toString().compareTo(label2.toString());
+			rc = NumberAwareStringComparator.getInstance().compare(label1.toString(), label2.toString());
 		}
 		// If descending order, flip the direction
 		if (direction == 2) {
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/.api_filters
index 96d817d..58fc119 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/.settings/.api_filters
@@ -7,6 +7,12 @@
                 <message_argument value="1.17.0"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change" id="923795461">
+            <message_arguments>
+                <message_argument value="1.19.0"/>
+                <message_argument value="1.9.0"/>
+            </message_arguments>
+        </filter>
         <filter comment="SPI Change in 1.6" id="923795461">
             <message_arguments>
                 <message_argument value="1.6.0"/>
@@ -61,6 +67,12 @@
                 <message_argument value="ContainerSWTRenderer(SWTRendererFactory)"/>
             </message_arguments>
         </filter>
+        <filter comment="SPI Change" id="338722907">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer"/>
+                <message_argument value="ContainerSWTRenderer(VELEMENT, ViewModelContext, ReportService, EMFFormsRendererFactory, EMFFormsDatabinding)"/>
+            </message_arguments>
+        </filter>
         <filter comment="EMFForms 1.6 SPI Change" id="338792546">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer"/>
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.core.swt/META-INF/MANIFEST.MF
index 1ceead7..796a138 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/META-INF/MANIFEST.MF
@@ -2,48 +2,48 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Core SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.core.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.core.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.core.swt;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
-  org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.view.context.test",
-  org.eclipse.emf.ecp.view.spi.core.swt;version="1.19.0";
-   uses:="org.eclipse.emf.ecp.ui.view.swt.internal,
-    org.eclipse.emf.ecp.view.spi.model,
-    org.eclipse.swt.widgets,
-    org.eclipse.emf.ecp.view.spi.context,
-    org.eclipse.emf.ecp.edit.spi.swt.util",
-  org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.core.swt;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt",
+ org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.view.context.test",
+ org.eclipse.emf.ecp.view.spi.core.swt;version="1.20.0";
+  uses:="org.eclipse.emf.ecp.ui.view.swt.internal,
+   org.eclipse.emf.ecp.view.spi.model,
+   org.eclipse.swt.widgets,
+   org.eclipse.emf.ecp.view.spi.context,
+   org.eclipse.emf.ecp.edit.spi.swt.util",
+ org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.200,2.0.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.200,2.0.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.locale;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emfforms.spi.common.locale;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.core.swt
 Service-Component: OSGI-INF/booleanControlService.xml,OSGI-INF/dateTimeControlService.xml,OSGI-INF/enumControlService.xml,OSGI-INF/numberControlService.xml,OSGI-INF/textControlService.xml,OSGI-INF/xmlDateControlService.xml,OSGI-INF/viewRendererService.xml,OSGI-INF/linkControlService.xml,OSGI-INF/enumLiteralFilteredControlService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.core.swt/pom.xml
index 149d86d..a37aefd 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer.java
index 189b38f..5fe6c64 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer.java
@@ -233,7 +233,11 @@
 			getReportService().report(new AbstractReport(ex));
 		}
 
-		createAddReferenceButton(parent, elementDisplayName);
+		VTReferenceStyleProperty referenceStyle = RendererUtil.getStyleProperty(
+			getVTViewTemplateProvider(), getVElement(), getViewModelContext(), VTReferenceStyleProperty.class);
+		if (referenceStyle == null) {
+			referenceStyle = getDefaultReferenceStyle();
+		}
 
 		EReference eReference = null;
 		try {
@@ -241,17 +245,19 @@
 		} catch (final DatabindingFailedException ex) {
 			getReportService().report(new AbstractReport(ex));
 		}
-		// Only allow to create new elements in the reference if it is a containment reference or if it was configured
-		// in a reference style property.
+
 		if (eReference != null) {
 			if (eReference.isContainment()) {
+				// Only allow to link existing elements in a containment reference if it was allowed in a reference
+				// style property.
+				if (referenceStyle.isShowLinkButtonForContainmentReferences()) {
+					createAddReferenceButton(parent, elementDisplayName);
+				}
 				createNewReferenceButton(parent, elementDisplayName);
 			} else {
-				VTReferenceStyleProperty referenceStyle = RendererUtil.getStyleProperty(
-					getVTViewTemplateProvider(), getVElement(), getViewModelContext(), VTReferenceStyleProperty.class);
-				if (referenceStyle == null) {
-					referenceStyle = getDefaultReferenceStyle();
-				}
+				createAddReferenceButton(parent, elementDisplayName);
+				// Only allow to create new elements in a cross reference if it was allowed in a reference style
+				// property.
 				if (referenceStyle.isShowCreateAndLinkButtonForCrossReferences()) {
 					createNewReferenceButton(parent, elementDisplayName);
 				}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java
index ce789e2..3f5c00e 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewSWTRenderer.java
@@ -26,7 +26,6 @@
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleChangeListener;
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.swt.widgets.Composite;
@@ -47,13 +46,13 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 * @param localeProvider The {@link EMFFormsLocaleProvider}
 	 */
 	@Inject
 	public ViewSWTRenderer(VView vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding, EMFFormsLocaleProvider localeProvider) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory,
+		EMFFormsLocaleProvider localeProvider) {
+		super(vElement, viewContext, reportService, factory);
 		this.localeProvider = localeProvider;
 		localeProvider.addEMFFormsLocaleChangeListener(this);
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java
index 47cf395..d11870a 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/AbstractControlSWTRenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -19,6 +19,7 @@
 import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
@@ -171,13 +172,9 @@
 				if (changeTester.isStructureChanged(getVElement().getDomainModelReference(),
 					getViewModelContext().getDomainModel(), notification)) {
 
-					Display.getDefault().asyncExec(new Runnable() {
-
-						@Override
-						public void run() {
-							if (!isDisposed) {
-								applyEnable();
-							}
+					Display.getDefault().asyncExec(() -> {
+						if (!isDisposed) {
+							applyEnable();
 						}
 					});
 				}
@@ -189,14 +186,37 @@
 			getViewModelContext().registerDomainChangeListener(modelChangeListener);
 		}
 		applyEnable();
+		applyReadOnly();
+		if (isUnchangeableFeature()) {
+			applyUnchangeableFeature();
+		}
 	}
 
 	/**
-	 * {@inheritDoc}
+	 * Checks if the value referenced by the DMR can be changed or not by the user.
 	 *
-	 * @see org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer#render(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell,
-	 *      org.eclipse.swt.widgets.Composite)
+	 * @return <code>true</code> if the value cannot be changed.
 	 */
+	protected boolean isUnchangeableFeature() {
+		final VDomainModelReference ref = getVElement().getDomainModelReference();
+		if (ref == null) {
+			getReportService()
+				.report(new AbstractReport(
+					String.format("No DomainModelReference could be found for the VElement %1$s.", //$NON-NLS-1$
+						getVElement().getName()),
+					IStatus.ERROR));
+		}
+		final EObject eObject = getViewModelContext().getDomainModel();
+		try {
+			@SuppressWarnings("rawtypes")
+			final IValueProperty valueProperty = getEMFFormsDatabinding().getValueProperty(ref, eObject);
+			return !EStructuralFeature.class.cast(valueProperty.getValueType()).isChangeable();
+		} catch (final DatabindingFailedException ex) {
+			getReportService().report(new DatabindingFailedReport(ex));
+			return false;
+		}
+	}
+
 	@Override
 	public Control render(SWTGridCell cell, Composite parent)
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
@@ -214,6 +234,16 @@
 	}
 
 	/**
+	 * This method is applied if the control's feature is configured as unchangeable.
+	 * The renderer is usually disabled when feature is not changeable.
+	 *
+	 * @since 1.20
+	 */
+	protected void applyUnchangeableFeature() {
+		getVElement().setReadonly(true);
+	}
+
+	/**
 	 * <p>
 	 * Indicates if the given Control SWT renderer takes the responsibility to call a possibly existing
 	 * {@link EMFFormsControlProcessorService} itself.
diff --git a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java
index 44d108d..da946ce 100644
--- a/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.core.swt/src/org/eclipse/emf/ecp/view/spi/core/swt/ContainerSWTRenderer.java
@@ -34,7 +34,6 @@
 import org.eclipse.emf.ecp.view.spi.swt.reporting.RenderingFailedReport;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.AbstractAdditionalSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
@@ -59,7 +58,6 @@
  */
 public abstract class ContainerSWTRenderer<VELEMENT extends VElement> extends AbstractSWTRenderer<VELEMENT> {
 	private final EMFFormsRendererFactory factory;
-	private final EMFFormsDatabinding emfFormsDatabinding;
 
 	/**
 	 * The {@link EMFFormsRendererFactory} to use.
@@ -78,14 +76,12 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
-	 * @since 1.6
+	 * @since 1.20
 	 */
 	public ContainerSWTRenderer(VELEMENT vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
+		EMFFormsRendererFactory factory) {
 		super(vElement, viewContext, reportService);
 		this.factory = factory;
-		this.emfFormsDatabinding = emfFormsDatabinding;
 	}
 
 	private SWTGridDescription rendererGridDescription;
@@ -211,17 +207,6 @@
 		return columnComposite;
 	}
 
-	/**
-	 * Returns the {@link EMFFormsDatabinding}.
-	 *
-	 * @return The {@link EMFFormsDatabinding}
-	 * @since 1.12
-	 */
-	protected EMFFormsDatabinding getEMFFormsDatabinding() {
-		// Method is eventually needed to check the validity of controls that are to be rendered.
-		return emfFormsDatabinding;
-	}
-
 	// TODO: possible duplicate code
 	private Control renderDiagnoseControl(Composite parent, VContainedElement child) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption {
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/META-INF/MANIFEST.MF
index 36a040b..b83e262 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.custom.model.provider.CustomEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.custom.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.custom.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.custom.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/pom.xml
index b5590fe..c51fb9d 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.custom.model/META-INF/MANIFEST.MF
index 9abc3e1..60e03ae 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/META-INF/MANIFEST.MF
@@ -2,32 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.custom.model.impl.Activator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.custom.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.custom.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.custom.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.custom.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.custom.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.custom.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
 Import-Package: org.eclipse.core.databinding.property.list;version="0.0.0",
-  org.eclipse.core.databinding.property.value;version="0.0.0",
-  org.eclipse.emf.databinding;version="0.0.0",
-  org.eclipse.emf.ecp.common.spi;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.spi.asserts;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emf.databinding;version="0.0.0",
+ org.eclipse.emf.ecp.common.spi;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.spi.asserts;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.custom.model
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.custom.model/pom.xml
index 99745a4..c336fd3 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.custom.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/META-INF/MANIFEST.MF
index 4956b4a..f03d049 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Custom View SWT DI
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.ui.swt.di;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.di.renderer;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
-  org.eclipse.e4.core.di;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.osgi;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.di.renderer;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.osgi;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.custom.ui.swt.di
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.swt.widgets;version="0.0.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.swt.widgets;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/pom.xml b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/pom.xml
index 5f33658..cbdf890 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt.di/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/META-INF/MANIFEST.MF
index 9eba1d8..2c87543 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/META-INF/MANIFEST.MF
@@ -2,35 +2,35 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Custom View SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.custom.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.custom.swt;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.custom.ui.swt.test",
-  org.eclipse.emf.ecp.view.spi.custom.swt;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.custom.swt;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.custom.ui.swt.test",
+ org.eclipse.emf.ecp.view.spi.custom.swt;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.custom.ui.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/pom.xml
index 66f7e39..cb0904d 100644
--- a/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.custom.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.edapt/META-INF/MANIFEST.MF
index 54a0c78..fda96a9 100644
--- a/bundles/org.eclipse.emf.ecp.view.edapt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.edapt/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Edapt
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.edapt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edapt.history;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edapt.history;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.edapt
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.edapt/pom.xml b/bundles/org.eclipse.emf.ecp.view.edapt/pom.xml
index 1833822..06e5ac5 100644
--- a/bundles/org.eclipse.emf.ecp.view.edapt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.edapt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.edapt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.model.edit/META-INF/MANIFEST.MF
index f4942e8..f7bfd81 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.group.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.group.model.provider.GroupEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.group.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.group.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.group.model.edit/pom.xml
index fc735b3..50fb795 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.group.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.group.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.model/META-INF/MANIFEST.MF
index fab2ccb..56c3948 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.group.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.group.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.group.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.group.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.group.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.group.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.group.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.model
diff --git a/bundles/org.eclipse.emf.ecp.view.group.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.group.model/pom.xml
index 2f47dd0..1a13b77 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.group.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/META-INF/MANIFEST.MF
index c641903..1e0e5e3 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Collapsable Group
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.collapsable
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsable;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.jface;bundle-version="[3.3.0,4.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsable;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.jface;bundle-version="[3.3.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/collapsableGroupRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.6.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.6.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.swt.collapsable
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/pom.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/pom.xml
index f4f4d76..e041975 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java
index 5f8e354..5a18ff8 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsable/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsable/CollapsableGroupSWTRenderer.java
@@ -24,7 +24,6 @@
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.EMFFormsSWTLayoutUtil;
 import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
@@ -68,12 +67,11 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 */
 	@Inject
 	public CollapsableGroupSWTRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 		dbc = new EMFDataBindingContext();
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/META-INF/MANIFEST.MF
index e4c95c5..6049718 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/META-INF/MANIFEST.MF
@@ -2,25 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Collapsible Group Renderer using PGroup
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.group.swt.internal.collapsible.pgroup;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/pGroupRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.nebula.widgets.pgroup;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.6.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.nebula.widgets.pgroup;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.6.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/pom.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/pom.xml
index 0f6683f..7015d01 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java
index 5620fd6..8144713 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup/src/org/eclipse/emf/ecp/view/group/swt/internal/collapsible/pgroup/PGroupRenderer.java
@@ -25,7 +25,6 @@
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.EMFFormsSWTLayoutUtil;
 import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
@@ -57,12 +56,11 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 */
 	@Inject
 	public PGroupRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/META-INF/MANIFEST.MF
index 19bdfc9..59b8a81 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: AlignmentGroup SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.swt.embedded
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.alignmentgroup.internal.swt;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.alignmentgroup.internal.swt;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/embeddedGroupRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.core.runtime;version="3.4.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.6.0"
+ org.eclipse.core.runtime;version="3.4.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.6.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.swt.embedded
diff --git a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/pom.xml b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/pom.xml
index 94ab449..019cdf8 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.group.swt.embedded/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/META-INF/MANIFEST.MF
index 9fac1de..ee47d79 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Group UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.spi.group.swt;version="1.19.0",
-  org.eclipse.emfforms.internal.group.swt;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.group.swt;version="1.20.0",
+ org.eclipse.emfforms.internal.group.swt;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/groupRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.ui.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/pom.xml
index ab73393..3e98d38 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java
index 2e87109..6ac652f 100644
--- a/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.group.ui.swt/src/org/eclipse/emf/ecp/view/spi/group/swt/GroupSWTRenderer.java
@@ -28,7 +28,6 @@
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emfforms.internal.group.swt.GroupTextProperty;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
@@ -56,13 +55,12 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 * @since 1.6
 	 */
 	@Inject
 	public GroupSWTRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 		dbc = new EMFDataBindingContext();
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/META-INF/MANIFEST.MF
index 0c3988d..a2cb2ba 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.groupedgrid.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.groupedgrid.model.provider.GroupedGridEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.groupedgrid.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/pom.xml
index d777b36..9bf1265 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.groupedgrid.model.edit</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/META-INF/MANIFEST.MF
index 8ccef3a..deb2772 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.groupedgrid.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.groupedgrid.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.groupedgrid.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.groupedgrid.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.groupedgrid.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.groupedgrid.model
diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/pom.xml
index 60c223d..20004ee 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.groupedgrid.model</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/META-INF/MANIFEST.MF
index a65ca0a..5856ef6 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Grouped Grid UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.groupedgrid.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.swt;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.groupedgrid.swt;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/GroupedGridSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.groupedgrid.ui.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/pom.xml
index f646ef1..dbd0acb 100644
--- a/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.groupedgrid.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/META-INF/MANIFEST.MF
index 4c49578..df2afbc 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.horizontal.model.provider.HorizontalEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.horizontal.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/pom.xml
index 6eb8fc9..45826fa 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.horizontal.model.edit</artifactId>
   <packaging>eclipse-plugin</packaging>
 
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.horizontal.model/META-INF/MANIFEST.MF
index f133f74..b2fb2ec 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Horizontal View Model
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.horizontal.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.horizontal.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.horizontal.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.horizontal.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.horizontal.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.horizontal.model
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.horizontal.model/pom.xml
index cd94197..d00e2d3 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.horizontal.model</artifactId>
   <packaging>eclipse-plugin</packaging>
 
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/META-INF/MANIFEST.MF
index 3da255e..a10993e 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Horizontal UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.ui.swt
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.horizontal.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.horizontal.swt;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.horizontal.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.horizontal.swt;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/horizontalLayoutRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.ecp.view.internal.core.swt;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emf.ecp.view.internal.core.swt;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.horizontal.ui.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/pom.xml
index 542c36d..75baa9b 100644
--- a/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.horizontal.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/META-INF/MANIFEST.MF
index ea888d8..66c29c1 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.indexdmr.model.provider.IndexdmrEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.indexdmr.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/pom.xml
index a93e25b..c09b7de 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/META-INF/MANIFEST.MF
index dbc59a2..1811690 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.indexdmr.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.indexdmr.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.indexdmr.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.indexdmr.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.indexdmr.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.indexdmr.model
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/pom.xml
index 527fbb5..0e99c7c 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/META-INF/MANIFEST.MF
index dc6a507..bf1a71d 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/META-INF/MANIFEST.MF
@@ -2,35 +2,35 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Index DMR Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.tooling;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.indexdmr.tooling;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.indexdmr.tooling;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Automatic-Module-Name: org.eclipse.emf.ecp.view.indexdmr.tooling
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="1.2.0"
-Bundle-ActivationPolicy: lazy
 Service-Component: OSGI-INF/PrefixDmrDomainModelReferenceRendererService.xml
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="1.2.0"
+Automatic-Module-Name: org.eclipse.emf.ecp.view.indexdmr.tooling
diff --git a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/pom.xml b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/pom.xml
index 54e928e..72d8fa9 100644
--- a/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.indexdmr.tooling/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/META-INF/MANIFEST.MF
index 507e176..31a6f5b 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.keyattributedmr.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.keyattributedmr.model.provider.KeyattributedmrEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.keyattributedmr.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/pom.xml
index ba8ce7c..e09ab50 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/META-INF/MANIFEST.MF
index 694b6ae..3f76cef 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.keyattributedmr.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.keyattributedmr.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.keyattributedmr.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.keyattributedmr.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.keyattributedmr.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.keyattributedmr.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.keyattributedmr.model
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/pom.xml
index abf55c9..e1a4cc5 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/META-INF/MANIFEST.MF
index b5ab43f..3aedbf4 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/META-INF/MANIFEST.MF
@@ -2,36 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Key Attribute DMR Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.keyattributedmr.tooling;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.keyattributedmr.tooling;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.keyattributedmr.tooling;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/KeyValueControlRendererService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.keyattributedmr.tooling
diff --git a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/pom.xml b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/pom.xml
index a870a8e..df35528 100644
--- a/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.keyattributedmr.tooling/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.label.model.edit/META-INF/MANIFEST.MF
index 8507c21..175746c 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.label.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.label.model.provider.LabelEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.label.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.label.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.label.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.label.model.edit/pom.xml
index e02fdbe..95879e1 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.label.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.label.model.edit</artifactId>

   <packaging>eclipse-plugin</packaging>

 

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.label.model/META-INF/MANIFEST.MF
index a99a7c1..4c614ad 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.label.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.label.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.label.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.label.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.label.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.label.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.label.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.label.model
diff --git a/bundles/org.eclipse.emf.ecp.view.label.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.label.model/pom.xml
index 0f88d2b..be5bd9d 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.label.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.label.model</artifactId>

   <packaging>eclipse-plugin</packaging>

 

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/META-INF/MANIFEST.MF
index 4d2691f..87ca319 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Label Rap
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.rap
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.label.rap;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.label.rap;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.view.label.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.label.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/labelRAPRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core;version="[1.19.0,1.20.0)",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.20.0,1.21.0)",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.label.rap
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/pom.xml b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/pom.xml
index 72660b7..3d5a51b 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.rap/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.rap/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.label.rap</artifactId>

   <packaging>eclipse-plugin</packaging>

 

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/META-INF/MANIFEST.MF
index 1ef714b..8b2f58c 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Label UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.ui.swt
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.label.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.label.swt;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.label.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.label.swt;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/labelRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.core.databinding.property.value;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.label.ui.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/pom.xml
index 096f84d..6b3fa84 100644
--- a/bundles/org.eclipse.emf.ecp.view.label.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.label.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/META-INF/MANIFEST.MF
index b85664a..7d5647a 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.mappingdmr.model.provider.MappingdmrEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.mappingdmr.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/pom.xml
index 5eafa82..b79c428 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/META-INF/MANIFEST.MF
index d4f3524..e65fbf0 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.mappingdmr.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.mappingdmr.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.mappingdmr.model.edit"
+Export-Package: org.eclipse.emf.ecp.view.spi.mappingdmr.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.mappingdmr.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.mappingdmr.model.util;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.mappingdmr.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.mappingdmr.model
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/pom.xml
index ae9f6cf..8f1f526 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/META-INF/MANIFEST.MF
index 7cc768b..12345d4 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.tooling;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.mappingdmr.tooling;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.mappingdmr.tooling;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.mappingdmr.tooling
-Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0"
+Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui.dialogs;ui.workbench=split;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/pom.xml b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/pom.xml
index 8c14d0b..b9cd7f4 100644
--- a/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.mappingdmr.tooling/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.migrator/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.migrator/META-INF/MANIFEST.MF
index eed36f8..b7bfbb6 100644
--- a/bundles/org.eclipse.emf.ecp.view.migrator/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.migrator/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Migrator
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.migrator;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.19.0",
-  org.eclipse.emf.ecp.spi.view.migrator.string;version="1.19.0",
-  org.eclipse.emf.ecp.view.migrator;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.20.0",
+ org.eclipse.emf.ecp.spi.view.migrator.string;version="1.20.0",
+ org.eclipse.emf.ecp.view.migrator;version="1.20.0"
 Require-Bundle: org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)"
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.migrator
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml b/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml
index fe7527f..d5722c0 100644
--- a/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.migrator/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.migrator</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.common.di/META-INF/MANIFEST.MF
index ceaf402..47b282a 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common.di/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common View Model Classes for Dependency Injection
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.common.di;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.common.di.messages;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.common.di.renderer;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.common.di.service;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.common.di.service.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.common.di.util;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.e4.core.di;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.common.di.messages;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.renderer;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.service;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.service.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.common.di.util;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.common.di
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common.di/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.common.di/pom.xml
index c0d94d6..348febf 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common.di/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.common.di/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.common/META-INF/MANIFEST.MF
index eeffc2e..dd9f2f4 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common View Model Classes
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.common
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.19.0",
-  org.eclipse.emf.ecp.view.model.common.edit.provider;version="1.19.0",
-  org.eclipse.emf.ecp.view.model.common.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.common.callback;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.20.0",
+ org.eclipse.emf.ecp.view.model.common.edit.provider;version="1.20.0",
+ org.eclipse.emf.ecp.view.model.common.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.common.callback;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.common
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="1.3.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="1.3.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.model.common/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.common/pom.xml
index 194cabb..e5ffafb 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.common/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.common/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model.edapt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.edapt/META-INF/MANIFEST.MF
index eba420d..4cdb7be 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edapt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.edapt/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Edapt Migration for Core View Model
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.edapt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.view.model.edapt._160to170;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.internal.view.model.edapt._160to170;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.edapt.migration;bundle-version="[1.1.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.edapt
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edapt/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.edapt/pom.xml
index d5ff594..cb8ffbd 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edapt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.edapt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.edapt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.edit/META-INF/MANIFEST.MF
index 0a4f2b9..0a1cfce 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.model.provider.ViewEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.edit/pom.xml
index bbf8e11..32990e0 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.classpath b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.classpath
index 64c5e31..eca7bdb 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.classpath
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.settings/org.eclipse.jdt.core.prefs
index 83b8580..0309974 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/META-INF/MANIFEST.MF
index 8274fd1..e4405db 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: New View Model Project Wizard
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.project.installer;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.model.internal.project.installer.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.internal.project.handlers;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.internal.project.installer;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.internal.project.handlers;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.internal.project.installer;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.common.ui;bundle-version="[2.5.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+ org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.project.installer
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/pom.xml
index 958e111..9db3aad 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.project.installer</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/templates/ViewModelProjectTemplate/.project b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/templates/ViewModelProjectTemplate/.project
index fc5d806..9fcfbab 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/templates/ViewModelProjectTemplate/.project
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor.project.installer/templates/ViewModelProjectTemplate/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.emfforms.ide.builder.viewModelBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.emfforms.ide.builder.viewModelNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.editor/META-INF/MANIFEST.MF
index 7e1d119..6c03f43 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/META-INF/MANIFEST.MF
@@ -2,26 +2,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.editor;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.model.presentation.ViewEditorPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.model.actions;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.presentation;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.model.project.installer"
+Export-Package: org.eclipse.emf.ecp.view.model.actions;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.presentation;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.model.project.installer"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.editor
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.editor/pom.xml
index f8494e6..cb30137 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/SelectEClassWizardPage.java b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/SelectEClassWizardPage.java
index a2cee69..2b4f77d 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/SelectEClassWizardPage.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.editor/src/org/eclipse/emf/ecp/view/model/presentation/SelectEClassWizardPage.java
@@ -225,10 +225,7 @@
 				children.addAll(EPackage.class.cast(parentElement).getESubpackages());
 				for (final EObject obj : EPackage.class.cast(parentElement).getEClassifiers()) {
 					if (EClass.class.isInstance(obj)) {
-						final EClass eClass = EClass.class.cast(obj);
-						if (!eClass.isAbstract() && !eClass.isInterface()) {
-							children.add(obj);
-						}
+						children.add(obj);
 					}
 				}
 				return children.toArray();
diff --git a/bundles/org.eclipse.emf.ecp.view.model.generator/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.generator/META-INF/MANIFEST.MF
index 13814f7..6af5391 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.generator/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.generator/META-INF/MANIFEST.MF
@@ -2,13 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Generator
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.provider.generator;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.generator;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.provider.generator
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.model.generator/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.generator/pom.xml
index baaae91..4ece081 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.generator/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.generator/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java b/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java
index 767c77f..c21075e 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.generator/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2018 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
@@ -22,16 +22,19 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
 import org.eclipse.emf.ecp.view.spi.provider.IViewProvider;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableFactory;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 
 /**
  * View Provider.
@@ -44,18 +47,22 @@
 		view.setUuid(generateId(eObject.eClass(), null));
 		final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(
 			new AdapterFactory[] {
-				new ReflectiveItemProviderAdapterFactory(),
+				new CustomReflectiveItemProviderAdapterFactory(),
 				new ComposedAdapterFactory(
 					ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
 		final AdapterFactoryItemDelegator delegator = new AdapterFactoryItemDelegator(
 			composedAdapterFactory);
 		for (final EStructuralFeature feature : getValidFeatures(delegator, eObject)) {
-
-			final VControl control = VViewFactory.eINSTANCE.createControl();
-			final VFeaturePathDomainModelReference modelReference = VViewFactory.eINSTANCE
-				.createFeaturePathDomainModelReference();
-			modelReference.setDomainModelEFeature(feature);
-			control.setDomainModelReference(modelReference);
+			final VControl control;
+			if (isTableFeature(feature)) {
+				control = VTableFactory.eINSTANCE.createTableControl();
+				final VTableDomainModelReference tableDmr = VTableFactory.eINSTANCE.createTableDomainModelReference();
+				tableDmr.setDomainModelReference(createModelReference(feature));
+				control.setDomainModelReference(tableDmr);
+			} else {
+				control = VViewFactory.eINSTANCE.createControl();
+				control.setDomainModelReference(createModelReference(feature));
+			}
 			control.setReadonly(isReadOnly(delegator, eObject, feature));
 			control.setUuid(generateId(eObject.eClass(), feature));
 			view.getChildren().add(control);
@@ -66,6 +73,21 @@
 		return view;
 	}
 
+	private VDomainModelReference createModelReference(final EStructuralFeature feature) {
+		final VFeaturePathDomainModelReference modelReference = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		modelReference.setDomainModelEFeature(feature);
+		return modelReference;
+	}
+
+	private boolean isTableFeature(EStructuralFeature feature) {
+		if (feature instanceof EReference) {
+			final EReference ref = (EReference) feature;
+			return ref.isMany() && ref.isContainment();
+		}
+		return false;
+	}
+
 	private boolean isReadOnly(AdapterFactoryItemDelegator delegator,
 		EObject owner, EStructuralFeature feature) {
 		if (!feature.isChangeable()) {
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.preview.common/META-INF/MANIFEST.MF
index 5a6b20c..8e5bceb 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.common/META-INF/MANIFEST.MF
@@ -2,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Preview Common
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.common;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.model.preview.common.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.preview.common;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3,org.eclipse.emf.ecp.view.model.preview.e4"
+Export-Package: org.eclipse.emf.ecp.view.model.preview.common;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3,org.eclipse.emf.ecp.view.model.preview.e4"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.model.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.eclipse.core.resources;version="0.0.0",
-  org.eclipse.emf.ecp.ui.view.swt;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.locale;version="[1.19.0,1.20.0)",
-  org.eclipse.jface;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="1.2.0"
+ org.eclipse.emf.ecp.ui.view.swt;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.locale;version="[1.20.0,1.21.0)",
+ org.eclipse.jface;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.preview.common
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.view.model.preview.common.PreviewWorkspaceViewProvider.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.common/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.preview.common/pom.xml
index f3e2c1c..5c43990 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.common/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.common/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.preview.common</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java b/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java
index 9ab09fc..77ced20 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.common/src/org/eclipse/emf/ecp/view/model/preview/common/Preview.java
@@ -21,7 +21,10 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
@@ -135,7 +138,22 @@
 				if (myPreviewEClass == null || myPreviewEClass.eIsProxy()) {
 					return;
 				}
-				dummyData = EcoreUtil.create(myPreviewEClass);
+				if (myPreviewEClass.isAbstract() || myPreviewEClass.isInterface()) {
+					final EPackage result = EcoreFactory.eINSTANCE.createEPackage();
+					result.setName("dummy"); //$NON-NLS-1$
+					result.setNsURI("dummy"); //$NON-NLS-1$
+					result.setNsPrefix("dummy"); //$NON-NLS-1$
+
+					final EClass wrapper = EcoreFactory.eINSTANCE.createEClass();
+					wrapper.getESuperTypes().add(myPreviewEClass);
+					wrapper.setName(myPreviewEClass.getName());
+					result.getEClassifiers().add(wrapper);
+					dummyData = new DynamicEObjectImpl(wrapper);
+				} else if (myPreviewEClass.getInstanceClass() == null) {
+					dummyData = new DynamicEObjectImpl(myPreviewEClass);
+				} else {
+					dummyData = EcoreUtil.create(myPreviewEClass);
+				}
 				final ResourceSet resourceSet = new ResourceSetImpl();
 				final AdapterFactoryEditingDomain domain = new AdapterFactoryEditingDomain(
 					new ComposedAdapterFactory(new AdapterFactory[] {
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.e3/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/META-INF/MANIFEST.MF
index c96ebf0..41254eb 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.e3/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/META-INF/MANIFEST.MF
@@ -2,43 +2,43 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Preview View
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.e3;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.model.internal.preview.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.model.internal.preview;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.internal.preview.actions;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.internal.preview.e3.views;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.model.internal.preview;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.internal.preview.actions;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.internal.preview.e3.views;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.editor.viewmodel;bundle-version="[1.19.0,1.20.0)";resolution:=optional,
-  org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)";resolution:=optional
+ org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.editor.viewmodel;bundle-version="[1.20.0,1.21.0)";resolution:=optional,
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)";resolution:=optional
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.core.resources;version="0.0.0",
-  org.eclipse.emf.common.ui.dialogs;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.model;version="0.0.0",
-  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0"
+ org.eclipse.core.resources;version="0.0.0",
+ org.eclipse.emf.common.ui.dialogs;version="0.0.0",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.model;version="0.0.0",
+ org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.preview.e3
diff --git a/bundles/org.eclipse.emf.ecp.view.model.preview.e3/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/pom.xml
index ba01b97..a1a0130 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.preview.e3/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.preview.e3/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.preview.e3</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/META-INF/MANIFEST.MF
index 1068a29..0acffd6 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: XMI View Model Provider
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.provider.xmi;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.view.model.provider.xmi.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.view.model.provider.xmi;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.provider.xmi;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls"
+Export-Package: org.eclipse.emf.ecp.internal.view.model.provider.xmi;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.provider.xmi;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ui.view.editor.controls"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.xmi;bundle-version="2.8.0",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.migrator;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.8.0",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.provider.xmi
diff --git a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/pom.xml b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/pom.xml
index 632b3d0..8f3fc6c 100644
--- a/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model.provider.xmi/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.model/META-INF/MANIFEST.MF
index 46f5e1b..ecebea3 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.model/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.model.impl.Activator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.model.internal.reporting;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.model.reporting;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.model.internal.reporting;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.model.reporting;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
diff --git a/bundles/org.eclipse.emf.ecp.view.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.model/pom.xml
index 310362a..2f30716 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VDiagnosticImpl.java b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VDiagnosticImpl.java
index 5b42489..880daa7 100644
--- a/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VDiagnosticImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.model/src/org/eclipse/emf/ecp/view/spi/model/impl/VDiagnosticImpl.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543160
  */
 package org.eclipse.emf.ecp.view.spi.model.impl;
 
@@ -15,14 +16,13 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.EList;
@@ -53,43 +53,6 @@
  */
 // TODO performance
 public class VDiagnosticImpl extends EObjectImpl implements VDiagnostic {
-	/**
-	 * @generated NOT
-	 */
-	private final class DiagnosticAdapter extends AdapterImpl {
-		@SuppressWarnings("unchecked")
-		@Override
-		public void notifyChanged(Notification msg) {
-			super.notifyChanged(msg);
-			if (msg.getFeature() != VViewPackage.eINSTANCE.getDiagnostic_Diagnostics()) {
-				return;
-			}
-			switch (msg.getEventType()) {
-			case Notification.ADD:
-				addNewDiagnostic((Diagnostic) msg.getNewValue());
-				break;
-			case Notification.ADD_MANY:
-				if (msg.getNewValue() != null) {
-					for (final Diagnostic diagnostic : (Collection<Diagnostic>) msg.getNewValue()) {
-						addNewDiagnostic(diagnostic);
-					}
-				}
-				break;
-			case Notification.REMOVE:
-				removeOldDiagnostic((Diagnostic) msg.getOldValue());
-				break;
-			case Notification.REMOVE_MANY:
-				if (msg.getOldValue() != null) {
-					for (final Diagnostic diagnostic : (Collection<Diagnostic>) msg.getOldValue()) {
-						removeOldDiagnostic(diagnostic);
-					}
-				}
-				break;
-			default:
-				break;
-			}
-		}
-	}
 
 	/**
 	 * The cached value of the '{@link #getDiagnostics() <em>Diagnostics</em>}' attribute list.
@@ -107,46 +70,70 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated NOT
+	 * @generated
 	 */
 	protected VDiagnosticImpl() {
 		super();
-		eAdapters().add(new DiagnosticAdapter());
 	}
-	// end of custom code
 
 	private void removeOldDiagnostic(Diagnostic diagnostic) {
-		if (diagnostic == null) {
+		final EObject eObject = getDiagnosticSubject(diagnostic);
+		if (eObject == null) {
 			return;
 		}
-		final EObject eObject = (EObject) diagnostic.getData().get(0);
-		if (!diagnosticMap.containsKey(eObject)) {
-			return;
-		}
-		final Set<Diagnostic> diagnostics = diagnosticMap.get(eObject);
-		diagnostics.remove(diagnostic);
-		if (diagnostics.size() == 0) {
-			diagnosticMap.remove(eObject);
+
+		EObject parent = eObject;
+		while (parent != null) {
+			final Set<Diagnostic> diagnostics = diagnosticMap.get(parent);
+			if (diagnostics != null) {
+				diagnostics.remove(diagnostic);
+			}
+			parent = parent.eContainer();
 		}
 	}
 
 	private void addNewDiagnostic(Diagnostic diagnostic) {
-		if (diagnostic == null || diagnostic.getData().isEmpty()
-			|| !EObject.class.isInstance(diagnostic.getData().get(0))) {
+		final EObject eObject = getDiagnosticSubject(diagnostic);
+		if (eObject == null) {
 			return;
 		}
-		final EObject eObject = (EObject) diagnostic.getData().get(0);
+
 		EObject parent = eObject;
 		while (parent != null) {
-			if (!diagnosticMap.containsKey(parent)) {
-				diagnosticMap.put(parent, new LinkedHashSet<Diagnostic>());
+			Set<Diagnostic> diagnostics = diagnosticMap.get(parent);
+			if (diagnostics == null) {
+				diagnostics = new LinkedHashSet<Diagnostic>();
+				diagnosticMap.put(parent, diagnostics);
 			}
-			diagnosticMap.get(parent).add(diagnostic);
+			diagnostics.add(diagnostic);
 			parent = parent.eContainer();
 		}
 	}
 
 	/**
+	 * Get the {@link EObject} that is the subject of a {@code diagnostic}.
+	 *
+	 * @param diagnostic a purported {@link Diagnostic}
+	 * @return the object that is the first {@linkplain Diagnostic#getData() data element}
+	 *         of the {@code diagnostic}, or {@code null} if none
+	 */
+	private EObject getDiagnosticSubject(Object diagnostic) {
+		EObject result = null;
+
+		if (diagnostic instanceof Diagnostic) {
+			final Diagnostic d = (Diagnostic) diagnostic;
+			if (!d.getData().isEmpty()) {
+				final Object first = d.getData().get(0);
+				if (first instanceof EObject) {
+					result = (EObject) first;
+				}
+			}
+		}
+
+		return result;
+	}
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -161,17 +148,76 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public EList<Object> getDiagnostics() {
 		if (diagnostics == null) {
-			diagnostics = new EDataTypeUniqueEList<Object>(Object.class, this, VViewPackage.DIAGNOSTIC__DIAGNOSTICS);
+			diagnostics = new DiagnosticEList();
 		}
 		return diagnostics;
 	}
 
 	/**
+	 * Implementation of the list of diagnostics with hooks for tracking diagnostics in
+	 * the per-object sets and leveraging those sets for efficient containment testing
+	 * and duplicate filtering.
+	 */
+	@SuppressWarnings("serial")
+	private final class DiagnosticEList extends EDataTypeUniqueEList<Object> {
+		private DiagnosticEList() {
+			super(Object.class, VDiagnosticImpl.this, VViewPackage.DIAGNOSTIC__DIAGNOSTICS);
+		}
+
+		@Override
+		protected Collection<Object> getNonDuplicates(Collection<? extends Object> collection) {
+			// Our implementation of 'contains' is constant-time
+			final Collection<Object> result = new HashSet<Object>(collection.size() * 2, 0.5f);
+			for (final Object next : collection) {
+				if (!contains(next)) {
+					result.add(next);
+				}
+			}
+			return result;
+		}
+
+		@Override
+		public boolean contains(Object object) {
+			// We can leverage the efficiency of sets maintained already for
+			// unique tracking per object
+			final EObject subject = getDiagnosticSubject(object);
+			final Set<Diagnostic> diagnostics = diagnosticMap.get(subject);
+			if (diagnostics != null) {
+				return diagnostics.contains(object);
+			}
+
+			// Okay, it's not a diagnostic or it doesn't have a subject.
+			// Fall back to the default linear search
+			return super.contains(object);
+		}
+
+		@Override
+		protected void didAdd(int index, Object newObject) {
+			addNewDiagnostic((Diagnostic) newObject);
+		}
+
+		@Override
+		protected void didRemove(int index, Object oldObject) {
+			removeOldDiagnostic((Diagnostic) oldObject);
+		}
+
+		@Override
+		protected void didSet(int index, Object newObject, Object oldObject) {
+			if (newObject != oldObject) {
+				didRemove(index, oldObject);
+				didAdd(index, newObject);
+			}
+		}
+	}
+
+	// end of custom code
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/META-INF/MANIFEST.MF
index f77e7af..11c8025 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Rule Model Edit Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.rule.model.provider.RuleEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.rule.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.rule.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.rule.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/pom.xml
index b6073c1..c9ef17d 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.rule.model.edit</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.rule.model/META-INF/MANIFEST.MF
index 853fe3f..0fbd5ce 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Rule Model Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.rule.model.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.rule.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.rule.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.rule.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.rule.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.rule.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.rule.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.rule.model
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)"
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/model/rule.history b/bundles/org.eclipse.emf.ecp.view.rule.model/model/rule.history
index 9ae3418..783be61 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model/model/rule.history
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/model/rule.history
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <history:History xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:history="http://www.eclipse.org/emf/edapt/history/0.3" xmi:id="_g9tCoH_iEeaZjMd1mcUoMw">
-  <releases xmi:id="_g9528H_iEeaZjMd1mcUoMw" date="2014-08-28T05:34:24.390-0400" label="140">
+  <releases xmi:id="_g9528H_iEeaZjMd1mcUoMw" date="2014-08-28T11:34:24.390+0200" label="140">
     <changes xsi:type="history:CompositeChange" xmi:id="_g97FEH_iEeaZjMd1mcUoMw">
       <changes xsi:type="history:Create" xmi:id="_g98TMH_iEeaZjMd1mcUoMw">
         <element href="rule.ecore#/"/>
@@ -245,8 +245,6 @@
         <parameters xmi:id="_g-cCdX_iEeaZjMd1mcUoMw" name="opposite"/>
       </operation>
     </changes>
-  </releases>
-  <releases xmi:id="_g-cpgH_iEeaZjMd1mcUoMw">
     <changes xsi:type="history:OperationChange" xmi:id="_EI8oYH_jEeaZjMd1mcUoMw">
       <changes xsi:type="history:Create" xmi:id="_EI9PcH_jEeaZjMd1mcUoMw" referenceName="eClassifiers">
         <target href="rule.ecore#/"/>
@@ -870,4 +868,5 @@
       </operation>
     </changes>
   </releases>
+  <releases xmi:id="_g-cpgH_iEeaZjMd1mcUoMw"/>
 </history:History>
diff --git a/bundles/org.eclipse.emf.ecp.view.rule.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.rule.model/pom.xml
index 6c64749..fc5e85a 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.rule.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.rule.model</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <groupId>org.eclipse.emf.ecp</groupId>

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.rule/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.rule/META-INF/MANIFEST.MF
index e1fa6f1..ef0cd61 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.rule/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.rule;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.rule.test,org.eclipse.emf.ecp.view.model.integrationtest,org.eclipse.emf.ecp.view.unset.test",
-  org.eclipse.emf.ecp.view.spi.rule;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.rule;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.rule.test,org.eclipse.emf.ecp.view.model.integrationtest,org.eclipse.emf.ecp.view.unset.test",
+ org.eclipse.emf.ecp.view.spi.rule;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.view.internal.rule.OrConditionService.xml,
  OSGI-INF/org.eclipse.emf.ecp.view.internal.rule.LeafConditionService.xml,
@@ -24,7 +24,7 @@
  OSGI-INF/org.eclipse.emf.ecp.view.internal.rule.TrueConditionService.xml,
  OSGI-INF/org.eclipse.emf.ecp.view.internal.rule.IsProxyConditionService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="1.2.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.rule
diff --git a/bundles/org.eclipse.emf.ecp.view.rule/pom.xml b/bundles/org.eclipse.emf.ecp.view.rule/pom.xml
index 7dff4a0..ecf564a 100644
--- a/bundles/org.eclipse.emf.ecp.view.rule/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.rule/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.rule</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <groupId>org.eclipse.emf.ecp</groupId>

   

diff --git a/bundles/org.eclipse.emf.ecp.view.section.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.section.model.edit/META-INF/MANIFEST.MF
index f120a12..f62876f 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.section.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.section.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.section.model.provider.SectionEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.section.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.section.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.section.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.section.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.section.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.section.model.edit/pom.xml
index 735ed5f..36997c7 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.section.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.section.model/META-INF/MANIFEST.MF
index f41ae54..f3ea307 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.section.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.section.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.section.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.section.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.section.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.section.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.section.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.section.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.section.model
diff --git a/bundles/org.eclipse.emf.ecp.view.section.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.section.model/pom.xml
index 56d11d5..fa231e9 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.section.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/META-INF/MANIFEST.MF
index a704165..22c907f 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/META-INF/MANIFEST.MF
@@ -2,35 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Section UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.section.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.section.ui.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.section.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.internal.section.ui.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.section.swt;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.section.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.annotation.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.section.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.section.ui.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.section.swt;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.section.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.beans;bundle-version="[1.3.0,2.0.0)"
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui.forms.events;version="0.0.0",
-  org.eclipse.ui.forms.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui.forms.events;version="0.0.0",
+ org.eclipse.ui.forms.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.section.ui.swt
 Service-Component: OSGI-INF/SectionLeafSWTRendererService.xml,OSGI-INF/SectionNodeSWTRendererService.xml,OSGI-INF/SectionedAreaSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/pom.xml
index fd05069..88c699d 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java
index 647844a..c897f0e 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionLeafSWTRenderer.java
@@ -80,13 +80,20 @@
 			.extendedMargins(computeLeftMargin(), 0, 0, 0)
 			.applyTo(composite);
 
+		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(getVElement());
 		final Label label = new Label(composite, getLabelStyleBits());
-		final String text = getVElement().getName() == null ? "" //$NON-NLS-1$
-			: getVElement().getName();
-		label.setText(text);
+
+		final IObservableValue modelLabelValue = EMFEditObservables.observeValue(
+			editingDomain,
+			getVElement(),
+			VViewPackage.eINSTANCE.getElement_Label());
+
+		final IObservableValue textObservable = WidgetProperties.text().observe(label);
+
+		getDataBindingContext().bindValue(textObservable, modelLabelValue);
+
 		GridDataFactory.fillDefaults().grab(true, false).applyTo(label);
 
-		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(getVElement());
 		final IObservableValue modelTooltipValue = EMFEditObservables.observeValue(
 			editingDomain,
 			getVElement(),
diff --git a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java
index 412ef05..dfa44f3 100644
--- a/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.section.ui.swt/src/org/eclipse/emf/ecp/view/spi/section/swt/SectionNodeSWTRenderer.java
@@ -19,7 +19,9 @@
 
 import javax.inject.Inject;
 
+import org.eclipse.core.databinding.beans.PojoProperties;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
 import org.eclipse.emf.databinding.edit.EMFEditObservables;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
@@ -258,12 +260,21 @@
 		setExpandableComposite(new ExpandableComposite(
 			composite, SWT.NONE, ExpandableComposite.TWISTIE));
 		getExpandableComposite().setExpanded(!getVElement().isCollapsed());
-		final String text = getVElement().getName() == null ? "" //$NON-NLS-1$
-			: getVElement().getName();
-		getExpandableComposite().setText(text);
+		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(getVElement());
+
+		final IObservableValue modelLabelValue = EMFEditObservables.observeValue(
+			editingDomain,
+			getVElement(),
+			VViewPackage.eINSTANCE.getElement_Label());
+		final String text = "text"; //$NON-NLS-1$
+		final WritableValue value = new WritableValue(text, String.class);
+		final IObservableValue textObservable = PojoProperties.value(ExpandableComposite.class, text, String.class)
+			.observe(expandableComposite);
+
+		getDataBindingContext().bindValue(textObservable, modelLabelValue);
+
 		initExpandableComposite(getExpandableComposite());
 
-		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(getVElement());
 		final IObservableValue modelTooltipValue = EMFEditObservables.observeValue(
 			editingDomain,
 			getVElement(),
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/META-INF/MANIFEST.MF
index 7f53f83..1954fe5 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.stack.model.provider.StackEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Export-Package: org.eclipse.emf.ecp.view.spi.stack.model.provider;version="0.1.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.stack.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/pom.xml
index edc9cf7..afe568a 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.stack.model/META-INF/MANIFEST.MF
index 10d7349..efd0b22 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Export-Package: org.eclipse.emf.ecp.view.spi.stack.model;version="0.1.0",
-  org.eclipse.emf.ecp.view.spi.stack.model.impl;version="0.1.0",
-  org.eclipse.emf.ecp.view.spi.stack.model.util;version="0.1.0"
+ org.eclipse.emf.ecp.view.spi.stack.model.impl;version="0.1.0",
+ org.eclipse.emf.ecp.view.spi.stack.model.util;version="0.1.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.stack.model
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.stack.model/pom.xml
index e0abf8e..ac5a013 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.stack.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/META-INF/MANIFEST.MF
index 37ac887..9ca59c7 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/META-INF/MANIFEST.MF
@@ -2,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.stack.ui.swt.Activator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.internal.stack.ui.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.stack.ui.swt;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.stack.ui.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.stack.ui.swt;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.stack.ui.swt
 Service-Component: OSGI-INF/SWTStackLayoutRendererService.xml,OSGI-INF/stackItemRendererService.xml
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/pom.xml
index ddb7579..709b5b4 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java
index 98d4c96..cbc543d 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.stack.ui.swt/src/org/eclipse/emf/ecp/view/spi/stack/ui/swt/SWTStackItemRenderer.java
@@ -20,7 +20,6 @@
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emf.ecp.view.spi.stack.model.VStackItem;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
@@ -38,14 +37,13 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 * @since 1.6
 	 */
 	@Inject
 	public SWTStackItemRenderer(VStackItem vElement, ViewModelContext viewContext,
 		ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 	}
 
 	private static final String LAYOUT_STACK_ITEM = "org_eclipse_emf_ecp_ui_layout_stackitem"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/META-INF/MANIFEST.MF
index 1844adf..d04330e 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/META-INF/MANIFEST.MF
@@ -2,8 +2,8 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Stack Layout Viewmodel
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.viewmodel;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.stack.viewmodel
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/pom.xml b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/pom.xml
index f257745..ed73c79 100644
--- a/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.stack.viewmodel/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.swt.layout/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.swt.layout/META-INF/MANIFEST.MF
index 1039479..a80f967 100644
--- a/bundles/org.eclipse.emf.ecp.view.swt.layout/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.swt.layout/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default LayoutProvider
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.swt.layout;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.swt.internal.layout;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.swt.internal.layout;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.view.swt.internal.layout.ECPLayoutProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="1.2.0"
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.swt.layout
diff --git a/bundles/org.eclipse.emf.ecp.view.swt.layout/pom.xml b/bundles/org.eclipse.emf.ecp.view.swt.layout/pom.xml
index a4cd9c0..9506691 100644
--- a/bundles/org.eclipse.emf.ecp.view.swt.layout/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.swt.layout/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.swt.layout</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/META-INF/MANIFEST.MF
index 82525d7..abee022 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table UI SWT Additional Cell Editors for Non-RAP Applications
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.celleditor.rcp;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.table.celleditor.rcp;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.table.celleditor.rcp;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.table.celleditor.rcp;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.celleditor.rcp;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.celleditor.rcp
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/pom.xml
index f8bac4c..cc6136f 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.celleditor.rcp/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.celleditor.rcp</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.columnservice/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.columnservice/META-INF/MANIFEST.MF
index 4b55f49..08aa344 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.columnservice/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.columnservice/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP View Table Column Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.columnservice;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.table.columnservice.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.table.columnservice;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.test"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
+Export-Package: org.eclipse.emf.ecp.view.internal.table.columnservice;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.table.ui.swt.test"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.columnservice
diff --git a/bundles/org.eclipse.emf.ecp.view.table.columnservice/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.columnservice/pom.xml
index 52645e3..31c20f2 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.columnservice/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.columnservice/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.table.columnservice</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.edapt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.edapt/META-INF/MANIFEST.MF
index d26cf3e..f3ad52d 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.edapt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.edapt/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Edapt Migration for Table View Model
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.edapt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.table.edapt._140to150;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.table.edapt._140to150;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.edapt.migration;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.edapt
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.table.edapt/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.edapt/pom.xml
index 85d695a..6a64ea3 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.edapt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.edapt/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.edapt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.model.edit/META-INF/MANIFEST.MF
index fe2905a..3469ffe 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.table.model.provider.TableEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.table.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.table.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.model.edit/pom.xml
index b56c4f9..636c283 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.model.edit/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.table.model.edit</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java b/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java
index ea77172..4672333 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.model.edit/src/org/eclipse/emf/ecp/view/spi/table/model/provider/TableControlItemProvider.java
@@ -34,7 +34,7 @@
  * This is the item provider adapter for a {@link org.eclipse.emf.ecp.view.spi.table.model.VTableControl} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
- *
+ * 
  * @generated
  */
 public class TableControlItemProvider
@@ -43,7 +43,7 @@
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	public TableControlItemProvider(AdapterFactory adapterFactory) {
@@ -54,7 +54,7 @@
 	 * This returns the property descriptors for the adapted class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -76,7 +76,7 @@
 	 * This adds a property descriptor for the Add Remove Disabled feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	protected void addAddRemoveDisabledPropertyDescriptor(Object object) {
@@ -99,7 +99,7 @@
 	 * This adds a property descriptor for the Move Up Down Disabled feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	protected void addMoveUpDownDisabledPropertyDescriptor(Object object) {
@@ -122,7 +122,7 @@
 	 * This adds a property descriptor for the Detail Editing feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	protected void addDetailEditingPropertyDescriptor(Object object) {
@@ -145,7 +145,7 @@
 	 * This adds a property descriptor for the Detail View feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	protected void addDetailViewPropertyDescriptor(Object object) {
@@ -168,7 +168,7 @@
 	 * This adds a property descriptor for the Enable Detail Editing Dialog feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	protected void addEnableDetailEditingDialogPropertyDescriptor(Object object) {
@@ -193,9 +193,7 @@
 	 *
 	 * @since 1.18
 	 *        <!-- end-user-doc -->
-	 *
 	 * @generated
-	 *
 	 */
 	protected void addDuplicateDisabledPropertyDescriptor(Object object) {
 		itemPropertyDescriptors
@@ -219,7 +217,7 @@
 	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -235,7 +233,7 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -250,7 +248,7 @@
 	 * This returns TableControl.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -280,7 +278,7 @@
 	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -308,7 +306,7 @@
 	 * that can be created under this object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 *
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -326,9 +324,6 @@
 
 		newChildDescriptors.add(createChildParameter(VTablePackage.Literals.TABLE_CONTROL__COLUMN_CONFIGURATIONS,
 			VTableFactory.eINSTANCE.createEnablementConfiguration()));
-
-		newChildDescriptors.add(createChildParameter(VTablePackage.Literals.TABLE_CONTROL__DETAIL_VIEW,
-			VViewFactory.eINSTANCE.createView()));
 	}
 
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.model/META-INF/MANIFEST.MF
index df8f9ab..d6d0a69 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/META-INF/MANIFEST.MF
@@ -2,30 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.table.model.Activator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.internal.table.generator;version="1.19.0";
-  x-friends:="org.eclipse.emf.ecp.view.table.columnservice,
-   org.eclipse.emf.ecp.view.table.editor",
-  org.eclipse.emf.ecp.view.internal.table.model;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.table.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.table.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.table.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.generator;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.table.columnservice,org.eclipse.emf.ecp.view.table.editor",
+ org.eclipse.emf.ecp.view.internal.table.model;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.table.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.table.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
 Import-Package: org.eclipse.emf.databinding;version="0.0.0",
-  org.eclipse.emf.ecp.common.spi.asserts;version="1.19.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="1.2.0"
+ org.eclipse.emf.ecp.common.spi.asserts;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="1.2.0"
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.model
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/model/table.genmodel b/bundles/org.eclipse.emf.ecp.view.table.model/model/table.genmodel
index da86eae..49afeae 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/model/table.genmodel
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/model/table.genmodel
@@ -4,7 +4,7 @@
     modelDirectory="/org.eclipse.emf.ecp.view.table.model/src" modelPluginID="org.eclipse.emf.ecp.view.table.model"
     modelName="Table" nonNLSMarkers="true" codeFormatting="true" commentFormatting="true"
     importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
-    usedGenPackages="../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model"
+    usedGenPackages="../../org.eclipse.emf.ecp.view.model/model/view.genmodel#//model ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
     interfaceNamePattern="V{0}" classNamePattern="V{0}Impl">
   <foreignModel>table.ecore</foreignModel>
   <genPackages prefix="Table" basePackage="org.eclipse.emf.ecp.view.spi" disposableProviderFactory="true"
@@ -19,10 +19,12 @@
     </genEnums>
     <genClasses ecoreClass="table.ecore#//TableControl">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute table.ecore#//TableControl/addRemoveDisabled"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute table.ecore#//TableControl/moveUpDownDisabled"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference table.ecore#//TableControl/columnConfigurations"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute table.ecore#//TableControl/detailEditing"/>
-      <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference table.ecore#//TableControl/detailView"/>
+      <genFeatures children="true" createChild="false" ecoreFeature="ecore:EReference table.ecore#//TableControl/detailView"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute table.ecore#//TableControl/enableDetailEditingDialog"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute table.ecore#//TableControl/duplicateDisabled"/>
     </genClasses>
     <genClasses image="false" ecoreClass="table.ecore#//TableColumnConfiguration"/>
     <genClasses ecoreClass="table.ecore#//TableDomainModelReference">
diff --git a/bundles/org.eclipse.emf.ecp.view.table.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.model/pom.xml
index d239543..ad5246f 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.model/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.table.model</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/META-INF/MANIFEST.MF
index 1dfdc09..d27fccc 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/META-INF/MANIFEST.MF
@@ -2,56 +2,56 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Nebula Grid Table UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.nebula.grid;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: OSGI-INF/l10n/bundle
-Export-Package: org.eclipse.emf.ecp.view.internal.table.nebula.grid;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.nebula.grid;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)"
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.ecp.view.spi.table.model;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.spi.table.swt;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.localization;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core.di;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.nebula.jface.gridviewer;version="0.0.0",
-  org.eclipse.nebula.widgets.grid;version="0.0.0",
-  org.eclipse.nebula.widgets.grid.internal;version="0.0.0",
-  org.eclipse.osgi.util;version="1.1.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.dnd;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+ org.eclipse.emf.ecp.view.spi.table.model;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.spi.table.swt;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.nebula.jface.gridviewer;version="0.0.0",
+ org.eclipse.nebula.widgets.grid;version="0.0.0",
+ org.eclipse.nebula.widgets.grid.internal;version="0.0.0",
+ org.eclipse.osgi.util;version="1.1.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.dnd;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.nebula.grid
 Service-Component: OSGI-INF/GridControlSWTRendererService.xml,OSGI-INF/org.eclipse.emf.ecp.view.internal.table.nebula.grid.GridControlDetailPanelSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/pom.xml
index 230f5ab..7662202 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.ui.nebula.grid</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer.java
index 6d03012..41c397d 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer.java
@@ -48,10 +48,10 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 
 /**
@@ -124,6 +124,9 @@
 		/* scrolled composite */
 		scrolledComposite = createScrolledDetail(sashForm);
 
+		scrolledComposite.addListener(SWT.Resize,
+			(Event event) -> scrolledComposite.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT)));
+
 		// As a default the table gets 1/3 of the space and the detail panel 2/3.
 		sashForm.setWeights(new int[] { 1, 2 });
 
@@ -181,7 +184,8 @@
 	 * @return The ScrolledComposite containing the detail panel
 	 */
 	protected ScrolledComposite createScrolledDetail(Composite parent) {
-		final ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.BORDER);
+		final ScrolledComposite scrolledComposite = new ScrolledComposite(parent,
+			SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
 		scrolledComposite.setBackground(parent.getBackground());
 		scrolledComposite.setLayout(GridLayoutFactory.fillDefaults().create());
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(scrolledComposite);
@@ -193,9 +197,6 @@
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(detailPanel);
 		scrolledComposite.setContent(detailPanel);
 
-		detailPanel.layout();
-		final Point point = detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		scrolledComposite.setMinHeight(point.y);
 		return scrolledComposite;
 	}
 
@@ -293,8 +294,7 @@
 		final EObject object = (EObject) selection.getFirstElement();
 		renderSelectedObject(compositeToRenderOn, object);
 		border.layout(true, true);
-		final Point point = detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		scrolledComposite.setMinHeight(point.y);
+		scrolledComposite.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridTableViewerComposite.java b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridTableViewerComposite.java
index cf5143d..5177eec 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridTableViewerComposite.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.nebula.grid/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridTableViewerComposite.java
@@ -332,10 +332,6 @@
 		@Override
 		public boolean select(Viewer viewer, Object parentElement, Object element) {
 
-			if (grid.getItemCount() == 0) {
-				return true;
-			}
-
 			grid.setRedraw(false);
 			final GridItem dummyItem = new GridItem(grid, SWT.NONE);
 
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/META-INF/MANIFEST.MF
index 32f9175..202573e 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table UI RCP
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.rcp
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.table.ui.rcp;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.table.ui.rcp;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.ui.rcp;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.ui.rcp;version="1.20.0"
 Require-Bundle: org.eclipse.swt;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.jface;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.jface;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/TableControlRCPRendererService.xml,OSGI-INF/TableControlDetailDialogRCPRendererService.xml,OSGI-INF/TableControlDetailPanelRCPRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.rcp
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/pom.xml
index 25c8ade..c2a36d5 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.rcp/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.table.ui.rcp</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/META-INF/MANIFEST.MF
index 73caac6..4f91cb7 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table UI SWT Service for Persisting State
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt.persistedstate
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.internal.view.table.ui.swt.persistedstate.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.internal.view.table.ui.swt.persistedstate;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.spi.view.table.ui.swt.persistedstate;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.internal.view.table.ui.swt.persistedstate;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.spi.view.table.ui.swt.persistedstate;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.swt.persistedstate
 Service-Component: OSGI-INF/PersistTableStateServiceFactory.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/pom.xml
index 4a8aee4..2b96b25 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.table.ui.swt.persistedstate</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/META-INF/MANIFEST.MF
index 5002781..84983d3 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/META-INF/MANIFEST.MF
@@ -2,52 +2,52 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.table.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.table.swt;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test,org.eclipse.emf.ecp.view.table.ui.swt.test",
-  org.eclipse.emf.ecp.view.internal.table.swt.cell;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.table.swt;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.table.swt.action;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.swt;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test,org.eclipse.emf.ecp.view.table.ui.swt.test",
+ org.eclipse.emf.ecp.view.internal.table.swt.cell;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.swt;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.table.swt.action;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.20.0,1.21.0)"
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.bindings.keys;version="0.0.0",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.dnd;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emf.edit.ui.dnd;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.bindings.keys;version="0.0.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.dnd;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.swt
 Service-Component: OSGI-INF/tableDetailDialogRendererService.xml,OSGI-INF/tableDetailPanelRendererService.xml,OSGI-INF/tableRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/pom.xml
index b01e351..928375c 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.table.ui.swt</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/RunnableManager.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/RunnableManager.java
index 13b9a5e..3d17830 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/RunnableManager.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/internal/table/swt/RunnableManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2017 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,10 +8,12 @@
  *
  * Contributors:
  * Edgar Mueller - initial API and implementation
+ * Christian W. Damus - bug 544116
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.table.swt;
 
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
 
 import org.eclipse.swt.widgets.Display;
 
@@ -26,7 +28,7 @@
 public class RunnableManager {
 
 	private final AtomicBoolean isRunning = new AtomicBoolean(false);
-	private final AtomicBoolean isPending = new AtomicBoolean(false);
+	private final AtomicReference<Runnable> pending = new AtomicReference<>();
 	private final Display display;
 
 	/**
@@ -42,8 +44,9 @@
 		// validation finished
 		isRunning.compareAndSet(true, false);
 		// re-trigger validation if we have a pending request
-		if (isPending.compareAndSet(true, false)) {
-			executeAsync(runnable);
+		final Runnable next = pending.getAndSet(null);
+		if (next != null) {
+			executeAsync(next);
 		}
 	}
 
@@ -69,7 +72,7 @@
 		if (isRunning.compareAndSet(false, true)) {
 			getDisplay().asyncExec(createWrapperRunnable(runnable));
 		} else {
-			isPending.compareAndSet(false, true);
+			pending.compareAndSet(null, runnable);
 		}
 	}
 
@@ -79,4 +82,17 @@
 	public synchronized Display getDisplay() {
 		return display;
 	}
+
+	/**
+	 * Query whether a runnable is in progress (asynchronously) on the display thread.
+	 * The implication is that posting a new runnable at this instant would be redundant.
+	 *
+	 * @return {@code true} if a runnable is currently running on the display thread
+	 *         or waiting to run on the display thread; {@code false}, otherwise
+	 * @since 1.20
+	 */
+	public boolean isRunning() {
+		return isRunning.get();
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer.java
index e0a23c4..bd67fa1 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer.java
@@ -50,10 +50,10 @@
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 
 /**
@@ -129,7 +129,7 @@
 		GridLayoutFactory.fillDefaults().numColumns(1).applyTo(border);
 
 		/* scrolled composite */
-		scrolledComposite = new ScrolledComposite(border, SWT.V_SCROLL);
+		scrolledComposite = new ScrolledComposite(border, SWT.V_SCROLL | SWT.H_SCROLL);
 		scrolledComposite.setBackground(composite.getBackground());
 		scrolledComposite.setLayout(GridLayoutFactory.fillDefaults().create());
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(scrolledComposite);
@@ -141,9 +141,8 @@
 		GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(detailPanel);
 		scrolledComposite.setContent(detailPanel);
 
-		detailPanel.layout();
-		final Point point = detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		scrolledComposite.setMinHeight(point.y);
+		scrolledComposite.addListener(SWT.Resize,
+			(Event event) -> scrolledComposite.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT)));
 
 		return tableComposite;
 	}
@@ -262,8 +261,7 @@
 		final EObject object = (EObject) selection.getFirstElement();
 		renderSelectedObject(compositeToRenderOn, object);
 		border.layout(true, true);
-		final Point point = detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		scrolledComposite.setMinHeight(point.y);
+		scrolledComposite.setMinSize(detailPanel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java
index 7224241..6359988 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.table.ui.swt/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -9,9 +9,12 @@
  * Contributors:
  * Eugen Neufeld - initial API and implementation
  * Johannes Faltermeier - refactorings
+ * Christian W. Damus - bugs 544116, 544537
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
+import static java.util.stream.Collectors.toCollection;
+
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.text.MessageFormat;
@@ -21,7 +24,10 @@
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.inject.Inject;
 
@@ -38,6 +44,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.command.CompoundCommand;
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
@@ -67,6 +74,8 @@
 import org.eclipse.emf.ecp.view.spi.core.swt.AbstractControlSWTRendererUtil;
 import org.eclipse.emf.ecp.view.spi.model.DiagnosticMessageExtractor;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
+import org.eclipse.emf.ecp.view.spi.model.ModelChangeNotification;
 import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.provider.ECPTooltipModifierHelper;
@@ -108,6 +117,7 @@
 import org.eclipse.emfforms.common.Optional;
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
+import org.eclipse.emfforms.spi.common.sort.NumberAwareStringComparator;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
@@ -242,11 +252,18 @@
 	private AbstractTableViewerComposite<? extends AbstractTableViewer> tableViewerComposite;
 	private int regularColumnsStartIndex;
 	private boolean isDisposing;
-	private IObservableList list;
+	private IObservableList<?> list;
 	private final RunnableManager runnableManager = new RunnableManager(Display.getDefault());
 
 	private TableViewerSWTCustomization<?> customization;
 
+	/** The EReference describing the list shown by the table. */
+	private EReference tableEReference;
+	private EStructuralFeature[] columnFeatures;
+	/** The feature of the column which is currently used for sorting. */
+	private java.util.Optional<EStructuralFeature> sortColumnFeature = java.util.Optional.empty();
+	private ModelChangeListener autoSortModelChangeListener;
+
 	/**
 	 * Default constructor.
 	 *
@@ -320,11 +337,12 @@
 		return renderTableControl(gridCell, parent);
 	}
 
+	@SuppressWarnings("unchecked")
 	@Override
 	protected Control createLabel(final Composite parent) {
 		final VDomainModelReference dmrToCheck = getDMRToMultiReference();
-		final IObservableValue labelText = getLabelText(dmrToCheck);
-		final IObservableValue labelTooltipText = getLabelTooltipText(dmrToCheck);
+		final IObservableValue<?> labelText = getLabelText(dmrToCheck);
+		final IObservableValue<?> labelTooltipText = getLabelTooltipText(dmrToCheck);
 
 		final Label titleLabel = new Label(parent, AbstractControlSWTRendererUtil
 			.getLabelStyleBits(getVTViewTemplateProvider(), getVElement(), getViewModelContext()));
@@ -366,14 +384,17 @@
 			list = getEMFFormsDatabinding().getObservableList(dmrToCheck,
 				getViewModelContext().getDomainModel());
 
+			/* get the EReference describing the list shown by the table */
+			tableEReference = (EReference) list.getElementType();
+
 			final TableRendererViewerActionContext actionContext = createViewerActionContext();
 			final ActionConfiguration actionConfiguration = configureActions(actionContext);
 			final TableActionBar<? extends AbstractTableViewer> actionBar = createActionBar(actionContext,
 				actionConfiguration);
 
 			/* get the label text/tooltip */
-			final IObservableValue labelText = getLabelText(dmrToCheck);
-			final IObservableValue labelTooltipText = getLabelTooltipText(dmrToCheck);
+			final IObservableValue<?> labelText = getLabelText(dmrToCheck);
+			final IObservableValue<?> labelTooltipText = getLabelTooltipText(dmrToCheck);
 
 			/* content provider */
 			final ObservableListContentProvider cp = new ObservableListContentProvider();
@@ -438,6 +459,9 @@
 
 			customization = tableViewerSWTBuilder.getCustomization();
 
+			autoSortModelChangeListener = new AutoSortModelChangeListener();
+			getViewModelContext().registerDomainChangeListener(autoSortModelChangeListener);
+
 			return tableViewerComposite;
 
 		} catch (final DatabindingFailedException ex) {
@@ -644,8 +668,10 @@
 	 *
 	 */
 	// CHECKSTYLE.OFF: ParameterNumber
-	protected TableViewerSWTBuilder createTableViewerSWTBuilder(Composite parent, IObservableList list,
-		IObservableValue labelText, IObservableValue labelTooltipText, TableViewerCompositeBuilder compositeBuilder,
+	protected TableViewerSWTBuilder createTableViewerSWTBuilder(Composite parent,
+		@SuppressWarnings("rawtypes") IObservableList list,
+		@SuppressWarnings("rawtypes") IObservableValue labelText,
+		@SuppressWarnings("rawtypes") IObservableValue labelTooltipText, TableViewerCompositeBuilder compositeBuilder,
 		ObservableListContentProvider cp, ECPTableViewerComparator comparator,
 		TableActionBar<? extends AbstractTableViewer> actionBar) {
 		// CHECKSTYLE.ON: ParameterNumber
@@ -756,7 +782,7 @@
 			: Optional.<Integer> empty();
 	}
 
-	private void addRelayoutListenerIfNeeded(IObservableList list, final Composite composite) {
+	private <T> void addRelayoutListenerIfNeeded(IObservableList<T> list, final Composite composite) {
 		if (list == null) {
 			return;
 		}
@@ -770,9 +796,9 @@
 		}
 
 		final GridData gridData = GridData.class.cast(composite.getLayoutData());
-		list.addListChangeListener(new IListChangeListener() {
+		list.addListChangeListener(new IListChangeListener<T>() {
 			@Override
-			public void handleListChange(ListChangeEvent event) {
+			public void handleListChange(ListChangeEvent<? extends T> event) {
 				gridData.heightHint = getTableHeightHint();
 				EMFFormsSWTLayoutUtil.adjustParentSize(composite);
 			}
@@ -795,23 +821,25 @@
 			tempInstance = getInstanceOf(clazz);
 		}
 
+		final List<VDomainModelReference> columns = getColumnDomainModelReferences().stream().filter(Objects::nonNull)
+			.collect(Collectors.toList());
 		/* regular columns */
-		for (final VDomainModelReference dmr : getColumnDomainModelReferences()) {
+		columnFeatures = new EStructuralFeature[columns.size()];
+		for (int i = 0; i < columns.size(); i++) {
 			try {
-				if (dmr == null) {
-					continue;
-				}
-
-				final IObservableValue text = getLabelTextForColumn(dmr, clazz);
-				final IObservableValue tooltip = getLabelTooltipTextForColumn(dmr, clazz);
+				final VDomainModelReference dmr = columns.get(i);
+				final IObservableValue<?> text = getLabelTextForColumn(dmr, clazz);
+				final IObservableValue<?> tooltip = getLabelTooltipTextForColumn(dmr, clazz);
 
 				// Use the same editing domain for the columns as for the view's domain object
 				final EditingDomain editingDomain = getEditingDomain(getViewModelContext().getDomainModel());
-				final IValueProperty valueProperty = getEMFFormsDatabinding().getValueProperty(dmr, clazz,
+				final IValueProperty<?, ?> valueProperty = getEMFFormsDatabinding().getValueProperty(dmr, clazz,
 					editingDomain);
 				final EStructuralFeature eStructuralFeature = (EStructuralFeature) valueProperty.getValueType();
+				columnFeatures[i] = eStructuralFeature;
 
-				final IObservableMap observableMap = valueProperty.observeDetail(cp.getKnownElements());
+				@SuppressWarnings("unchecked")
+				final IObservableMap<?, ?> observableMap = valueProperty.observeDetail(cp.getKnownElements());
 
 				final TableControlEditingSupportAndLabelProvider labelProvider = new TableControlEditingSupportAndLabelProvider(
 					tempInstance, eStructuralFeature, dmr, valueProperty, observableMap,
@@ -891,7 +919,7 @@
 		tableViewerComposite.setComparator(comparator, sortableColumns);
 	}
 
-	private IObservableValue getLabelText(VDomainModelReference dmrToCheck) {
+	private IObservableValue<?> getLabelText(VDomainModelReference dmrToCheck) {
 		switch (getVElement().getLabelAlignment()) {
 		case NONE:
 			return Observables.constantObservableValue("", String.class); //$NON-NLS-1$
@@ -906,7 +934,7 @@
 		}
 	}
 
-	private IObservableValue getLabelTextForColumn(VDomainModelReference dmrToCheck, EClass dmrRootEClass) {
+	private IObservableValue<?> getLabelTextForColumn(VDomainModelReference dmrToCheck, EClass dmrRootEClass) {
 		try {
 			return getEMFFormsLabelProvider().getDisplayName(dmrToCheck, dmrRootEClass);
 		} catch (final NoLabelFoundException e) {
@@ -916,7 +944,7 @@
 		}
 	}
 
-	private IObservableValue getLabelTooltipText(VDomainModelReference dmrToCheck) {
+	private IObservableValue<?> getLabelTooltipText(VDomainModelReference dmrToCheck) {
 		switch (getVElement().getLabelAlignment()) {
 		case NONE:
 			return Observables.constantObservableValue("", String.class); //$NON-NLS-1$
@@ -931,7 +959,7 @@
 		}
 	}
 
-	private IObservableValue getLabelTooltipTextForColumn(VDomainModelReference dmrToCheck, EClass dmrRootEClass) {
+	private IObservableValue<?> getLabelTooltipTextForColumn(VDomainModelReference dmrToCheck, EClass dmrRootEClass) {
 		try {
 			return getEMFFormsLabelProvider().getDescription(dmrToCheck, dmrRootEClass);
 		} catch (final NoLabelFoundException e) {
@@ -1071,6 +1099,7 @@
 	 * @return the table viewer composite
 	 * @since 1.13
 	 */
+	@SuppressWarnings("rawtypes")
 	protected AbstractTableViewerComposite getTableViewerComposite() {
 		return tableViewerComposite;
 	}
@@ -1142,7 +1171,11 @@
 	 * @since 1.6
 	 */
 	protected Image getImage(String path) {
-		return imageRegistryService.getImage(FrameworkUtil.getBundle(TableControlSWTRenderer.class), path);
+		Image result = imageRegistryService.getImage(FrameworkUtil.getBundle(getClass()), path);
+		if (result == null && getClass() != TableControlSWTRenderer.class) {
+			result = imageRegistryService.getImage(FrameworkUtil.getBundle(TableControlSWTRenderer.class), path);
+		}
+		return result;
 	}
 
 	/**
@@ -1451,8 +1484,34 @@
 	}
 
 	@Override
+	protected void applyValidation(VDiagnostic oldDiagnostic, VDiagnostic newDiagnostic) {
+		final Stream<Object> oldDiagnostics = oldDiagnostic == null ? Stream.empty()
+			: oldDiagnostic.getDiagnostics().stream();
+		final Stream<Object> newDiagnostics = newDiagnostic == null ? Stream.empty()
+			: newDiagnostic.getDiagnostics().stream();
+
+		final Set<Object> updates = Stream.concat(oldDiagnostics, newDiagnostics)
+			.map(this::getSubject).filter(Objects::nonNull).collect(toCollection(LinkedHashSet::new));
+
+		runnableManager.executeAsync(new ApplyValidationRunnable(updates));
+	}
+
+	private Object getSubject(Object diagnostic) {
+		Object result = null;
+
+		if (diagnostic instanceof Diagnostic) {
+			final List<?> data = ((Diagnostic) diagnostic).getData();
+			result = data.isEmpty() ? null : data.get(0);
+		}
+
+		return result;
+	}
+
+	@Override
 	protected void applyValidation() {
-		runnableManager.executeAsync(new ApplyValidationRunnable());
+		if (!runnableManager.isRunning()) {
+			runnableManager.executeAsync(new ApplyValidationRunnable());
+		}
 	}
 
 	/**
@@ -1540,13 +1599,28 @@
 
 	@Override
 	protected void applyEnable() {
-		if (tableViewerComposite != null && tableViewerComposite.getActionBar().isPresent()) {
-			tableViewerComposite.getActionBar().get().updateActionBar();
-		}
+		updateActionBar();
 	}
 
 	@Override
 	protected void applyReadOnly() {
+		updateActionBar();
+	}
+
+	@Override
+	protected void applyUnchangeableFeature() {
+		getVElement().setAddRemoveDisabled(true);
+		getVElement().setDuplicateDisabled(true);
+		getVElement().setMoveUpDownDisabled(true);
+		updateActionBar();
+	}
+
+	/**
+	 * Update this table control's action bar if it is present.
+	 *
+	 * @since 1.20
+	 */
+	protected void updateActionBar() {
 		if (tableViewerComposite != null && tableViewerComposite.getActionBar().isPresent()) {
 			tableViewerComposite.getActionBar().get().updateActionBar();
 		}
@@ -1568,10 +1642,14 @@
 			}
 			columnIndexToComparatorMap.clear();
 		}
-		tableViewerComposite.dispose();
-		tableViewerComposite = null;
-		tableViewer.getControl().dispose();
-		tableViewer = null;
+		if (tableViewerComposite != null) {
+			tableViewerComposite.dispose();
+			tableViewerComposite = null;
+		}
+		if (tableViewer != null) {
+			tableViewer.getControl().dispose();
+			tableViewer = null;
+		}
 
 		if (customization != null) {
 			for (final ColumnConfiguration columnConfig : customization.getColumnConfigurations()) {
@@ -1581,6 +1659,10 @@
 			customization.getTableConfiguration().dispose();
 		}
 
+		if (autoSortModelChangeListener != null) {
+			getViewModelContext().unregisterDomainChangeListener(autoSortModelChangeListener);
+			autoSortModelChangeListener = null;
+		}
 		super.dispose();
 	}
 
@@ -1592,7 +1674,8 @@
 	 * @param right the second object of the comparison
 	 * @param propertyIndex index of the selection column. the index is aligned with the index of the associated column
 	 *            domain model reference
-	 * @param direction {@link SWT#NONE}, {@link SWT#UP} or {@link SWT#DOWN} according to the indication displayed at
+	 * @param direction 0 (no sorting = insertion order := {@link SWT#NONE}), 1 (ascending := {@link SWT#DOWN}) or 2
+	 *            (descending := {@link SWT#UP}) according to the indication displayed at
 	 *            the table column.
 	 * @return a negative number if the first element is less than the
 	 *         second element; the value <code>0</code> if the first element is
@@ -1600,6 +1683,7 @@
 	 *         element is greater than the second element
 	 * @since 1.8
 	 */
+	@SuppressWarnings("unchecked")
 	protected int compare(Viewer viewer, Object left, Object right, int direction, int propertyIndex) {
 		if (direction == 0) {
 			return 0;
@@ -1622,11 +1706,20 @@
 		}
 
 		if (leftValue == null) {
-			rc = 1;
+			if (rightValue == null) {
+				rc = 0;
+			} else {
+				rc = 1;
+			}
 		} else if (rightValue == null) {
 			rc = -1;
 		} else {
-			rc = leftValue.toString().compareTo(rightValue.toString());
+			if (!(leftValue instanceof String) && leftValue instanceof Comparable
+				&& leftValue.getClass().isInstance(rightValue)) {
+				rc = Comparable.class.cast(leftValue).compareTo(rightValue);
+			} else {
+				rc = NumberAwareStringComparator.getInstance().compare(leftValue.toString(), rightValue.toString());
+			}
 		}
 		// If descending order, flip the direction
 		if (direction == 2) {
@@ -1638,11 +1731,11 @@
 	@Override
 	protected void rootDomainModelChanged() throws DatabindingFailedException {
 
-		final IObservableList oldList = (IObservableList) getTableViewer().getInput();
+		final IObservableList<?> oldList = (IObservableList<?>) getTableViewer().getInput();
 		oldList.dispose();
 
 		final EObject domainModel = getViewModelContext().getDomainModel();
-		final IObservableList list = getEMFFormsDatabinding().getObservableList(getDMRToMultiReference(),
+		final IObservableList<?> list = getEMFFormsDatabinding().getObservableList(getDMRToMultiReference(),
 			domainModel);
 		getTableViewer().setInput(list);
 
@@ -1707,7 +1800,7 @@
 	protected CellLabelProvider createCellLabelProvider(
 		EStructuralFeature feature,
 		CellEditor cellEditor,
-		IObservableMap attributeMap,
+		@SuppressWarnings("rawtypes") IObservableMap attributeMap,
 		VTableControl vTableControl,
 		VDomainModelReference dmr,
 		Control table) {
@@ -1904,6 +1997,18 @@
 	 *
 	 */
 	private final class ApplyValidationRunnable implements Runnable {
+		private Collection<?> updates;
+
+		ApplyValidationRunnable() {
+			super();
+		}
+
+		ApplyValidationRunnable(Collection<?> updates) {
+			super();
+
+			this.updates = updates;
+		}
+
 		@Override
 		public void run() {
 			if (isDisposing) {
@@ -1930,11 +2035,12 @@
 			validationIcon.setImage(getValidationIcon(getVElement().getDiagnostic().getHighestSeverity()));
 			showValidationSummaryTooltip(setting.get(), showValidationSummaryTooltip);
 
-			final Collection<?> collection = (Collection<?>) setting.get().get(true);
-			if (!collection.isEmpty()) {
-				for (final Object object : collection) {
-					getTableViewer().update(object, null);
-				}
+			if (updates != null) {
+				// Update these specific objects
+				getTableViewer().update(updates.toArray(), null);
+			} else {
+				// Just refresh everything
+				getTableViewer().refresh();
 			}
 		}
 
@@ -1973,8 +2079,8 @@
 		private final InternalEObject tempInstance;
 		private final EStructuralFeature eStructuralFeature;
 		private final VDomainModelReference dmr;
-		private final IValueProperty valueProperty;
-		private final IObservableMap observableMap;
+		private final IValueProperty<?, ?> valueProperty;
+		private final IObservableMap<?, ?> observableMap;
 
 		private CellEditor cellEditor;
 		private ECPTableEditingSupport observableSupport;
@@ -1984,7 +2090,7 @@
 
 		private TableControlEditingSupportAndLabelProvider(InternalEObject tempInstance,
 			EStructuralFeature eStructuralFeature, VDomainModelReference dmr,
-			IValueProperty valueProperty, IObservableMap observableMap, int indexOfColumn) {
+			IValueProperty<?, ?> valueProperty, IObservableMap<?, ?> observableMap, int indexOfColumn) {
 			this.tempInstance = tempInstance;
 			this.eStructuralFeature = eStructuralFeature;
 			this.dmr = dmr;
@@ -2176,9 +2282,9 @@
 			case 0:
 				return SWT.NONE;
 			case 1:
-				return SWT.UP;
+				return SWT.DOWN; // ascending
 			case 2:
-				return SWT.DOWN;
+				return SWT.UP; // descending
 			default:
 				return SWT.NONE;
 			}
@@ -2195,6 +2301,13 @@
 				propertyIndex = column;
 				direction = 1;
 			}
+			// No sorting is the same as no column being selected for sorting
+			if (direction == NONE) {
+				sortColumnFeature = java.util.Optional.empty();
+			} else {
+				// columnFeatures starts at index 0 with the first regular column
+				sortColumnFeature = java.util.Optional.of(columnFeatures[propertyIndex - regularColumnsStartIndex]);
+			}
 		}
 
 		@Override
@@ -2204,6 +2317,34 @@
 	}
 
 	/**
+	 * Domain model change listener that re-sorts the table and reveals the added resp. changed object.
+	 *
+	 * @since 1.20
+	 */
+	protected class AutoSortModelChangeListener implements ModelChangeListener {
+
+		@Override
+		public void notifyChange(ModelChangeNotification notification) {
+			final int event = notification.getRawNotification().getEventType();
+			if (notification.getStructuralFeature() == tableEReference
+				&& sortColumnFeature.isPresent()
+				&& (event == Notification.ADD || event == Notification.ADD_MANY)) {
+				sortAndReveal(notification.getNewEObjects());
+			} else if (sortColumnFeature.isPresent()
+				&& notification.getStructuralFeature() == sortColumnFeature.get()) {
+				sortAndReveal(notification.getNotifier());
+			}
+		}
+
+		private void sortAndReveal(Object toReveal) {
+			Display.getDefault().asyncExec(() -> {
+				getTableViewer().refresh();
+				getTableViewer().reveal(toReveal);
+			});
+		}
+	}
+
+	/**
 	 * ECP specific cell label provider that does also implement {@link IColorProvider} in
 	 * order to correctly.
 	 *
@@ -2232,7 +2373,8 @@
 		 * @param table the swt table
 		 * @since 1.10
 		 */
-		public ECPCellLabelProvider(EStructuralFeature feature, CellEditor cellEditor, IObservableMap attributeMap,
+		public ECPCellLabelProvider(EStructuralFeature feature, CellEditor cellEditor,
+			@SuppressWarnings("rawtypes") IObservableMap attributeMap,
 			VTableControl vTableControl, VDomainModelReference dmr, Control table) {
 			super(attributeMap);
 			this.vTableControl = vTableControl;
@@ -2346,19 +2488,25 @@
 	 * @author Eugen Neufeld
 	 *
 	 */
-	private class ECPTableEditingSupport extends EditingSupport {
+	class ECPTableEditingSupport extends EditingSupport {
 
 		private final CellEditor cellEditor;
 
+		@SuppressWarnings("rawtypes")
 		private final IValueProperty valueProperty;
 
 		private final VDomainModelReference domainModelReference;
 
 		/**
-		 * @param viewer
+		 * Initializes me.
+		 *
+		 * @param viewer the viewer to edit
+		 * @param cellEditor the cell editor used to edit the {@code viewer}
+		 * @param domainModelReference the model reference that populates the {@code viewer}
+		 * @param valueProperty the value property that supplies the {@code viewer}
 		 */
 		ECPTableEditingSupport(ColumnViewer viewer, CellEditor cellEditor, VDomainModelReference domainModelReference,
-			IValueProperty valueProperty) {
+			IValueProperty<?, ?> valueProperty) {
 			super(viewer);
 			this.cellEditor = cellEditor;
 			this.valueProperty = valueProperty;
@@ -2381,7 +2529,8 @@
 			}
 
 			// TODO: use getSettingFromObservable(dmr, eObject) instead?
-			final IObservableValue observableValue = valueProperty.observe(element);
+			@SuppressWarnings("unchecked")
+			final IObservableValue<?> observableValue = valueProperty.observe(element);
 			final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
 
 			final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
@@ -2443,10 +2592,11 @@
 				ECPElementAwareCellEditor.class.cast(cellEditor).updateRowElement(cell.getElement());
 			}
 
-			final IObservableValue target = doCreateCellEditorObservable(cellEditor);
+			final IObservableValue<?> target = doCreateCellEditorObservable(cellEditor);
 			Assert.isNotNull(target, "doCreateCellEditorObservable(...) did not return an observable"); //$NON-NLS-1$
 
-			final IObservableValue model = valueProperty.observe(cell.getElement());
+			@SuppressWarnings("unchecked")
+			final IObservableValue<?> model = valueProperty.observe(cell.getElement());
 			Assert.isNotNull(model, "The databinding service did not return an observable"); //$NON-NLS-1$
 
 			final Binding binding = createBinding(target, model);
@@ -2463,6 +2613,14 @@
 			return cellEditor;
 		}
 
+		/**
+		 * Bind a {@code model} value to a {@code target} value.
+		 *
+		 * @param target the binding target
+		 * @param model the binding source
+		 * @return the binding
+		 */
+		@SuppressWarnings({ "rawtypes", "unchecked" })
 		protected Binding createBinding(IObservableValue target, IObservableValue model) {
 			if (ECPCellEditor.class.isInstance(cellEditor)) {
 				return getDataBindingContext().bindValue(target, model,
@@ -2472,6 +2630,13 @@
 			return getDataBindingContext().bindValue(target, model);
 		}
 
+		/**
+		 * Create an observable value to supply the cells edited by a cell editor.
+		 *
+		 * @param cellEditor a cell editor
+		 * @return the observable value to supply it with data to edit
+		 */
+		@SuppressWarnings({ "rawtypes", "unchecked" })
 		protected IObservableValue doCreateCellEditorObservable(CellEditor cellEditor) {
 			if (ECPCellEditor.class.isInstance(cellEditor)) {
 				return ((ECPCellEditor) cellEditor).getValueProperty().observe(cellEditor);
@@ -2481,7 +2646,9 @@
 
 		@Override
 		protected final void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell) {
-			editingState.binding.updateTargetToModel();
+			if (editingState.isUpdateNeeded()) {
+				editingState.binding.updateTargetToModel();
+			}
 		}
 
 		/**
@@ -2532,21 +2699,46 @@
 		 */
 		class EditingState {
 
-			private final IObservableValue target;
-			private final IObservableValue model;
+			private final IObservableValue<?> target;
+			private final IObservableValue<?> model;
 			private final Binding binding;
 
-			EditingState(Binding binding, IObservableValue target, IObservableValue model) {
+			/**
+			 * Initializes me with the data binding details involved in editing.
+			 *
+			 * @param binding the data binding
+			 * @param target the bound target value
+			 * @param model the bound model value
+			 */
+			EditingState(Binding binding, IObservableValue<?> target, IObservableValue<?> model) {
 				this.binding = binding;
 				this.target = target;
 				this.model = model;
 			}
 
+			/**
+			 * Dispose the data binding that I maintain.
+			 */
 			void dispose() {
 				binding.dispose();
 				target.dispose();
 				model.dispose();
 			}
+
+			/**
+			 * Checks if an update is really needed.
+			 *
+			 * @return <code>true</code> if update is really needed, <code>false</code> otherwise.
+			 */
+			boolean isUpdateNeeded() {
+				final Object targetValue = target.getValue();
+				final Object modelValue = model.getValue();
+
+				if (targetValue == null) {
+					return modelValue != null;
+				}
+				return !targetValue.equals(modelValue);
+			}
 		}
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.table.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.table.validation/META-INF/MANIFEST.MF
index 3447d11..fc5006d 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.table.validation/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Table Detail Validation (Legacy)
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.validation;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.validation
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.table.validation/pom.xml b/bundles/org.eclipse.emf.ecp.view.table.validation/pom.xml
index 9a0ef06..0c34cf5 100644
--- a/bundles/org.eclipse.emf.ecp.view.table.validation/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.table.validation/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.table.validation</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/META-INF/MANIFEST.MF
index 8d1d565..0b2836d 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.annotation.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.template.selector.annotation.model.provider.AnnotationSelectorEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.template.selector.annotation.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.template.selector.annotation.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.template.annotation.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.template.annotation.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.annotation.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/pom.xml
index b0869c0..8b91f1f 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.template.annotation.model.edit</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.annotation.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.template.annotation.model/META-INF/MANIFEST.MF
index 928280a..dc1b78c 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.annotation.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.template.annotation.model/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.annotation.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.template.selector.annotation.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.annotation.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.annotation.model.edit"
+Export-Package: org.eclipse.emf.ecp.view.template.selector.annotation.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.annotation.model.util;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.template.annotation.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.annotation.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.annotation.model
diff --git a/bundles/org.eclipse.emf.ecp.view.template.annotation.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.annotation.model/pom.xml
index 8289287..e9482b4 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.annotation.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.annotation.model/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.template.annotation.model</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.template.model.edit/META-INF/MANIFEST.MF
index 7b41210..80c0e87 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/META-INF/MANIFEST.MF
@@ -2,37 +2,37 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.template.model.provider.TemplateEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.template.model.provider;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.annotation.model.edit",
-  org.eclipse.emf.ecp.view.template.selector.bool.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.hierarchy.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.alignment.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.background.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.fontProperties.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.keybinding.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.labelwidth.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.mandatory.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.reference.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tab.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tableValidation.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.unsettable.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.validation.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.wrap.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.template.model.provider;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.template.annotation.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.bool.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.keybinding.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.reference.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tab.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.wrap.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties b/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties
index 323a085..711b1cd 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/plugin.properties
@@ -256,3 +256,5 @@
 _UI_KeyBindings_bindings_feature = Bindings
 _UI_KeyBinding_id_feature = Id
 _UI_KeyBinding_keySequence_feature = Key Sequence
+_UI_ReferenceStyleProperty_showLinkButtonForContainmentReferences_feature = Show Link Button For Containment References
+_UI_ReferenceStyleProperty_showLinkButtonForContainmentReferences_description = If true, a button to link existing model objects is shown for containment reference controls. Otherwise, the button is hidden. [default: true]
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.model.edit/pom.xml
index 22a63af..1f49613 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.template.model.edit</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceItemProviderAdapterFactory.java b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceItemProviderAdapterFactory.java
index 5a5e31b..049e3c6 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceItemProviderAdapterFactory.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceItemProviderAdapterFactory.java
@@ -90,7 +90,7 @@
 	 *
 	 * @generated
 	 */
-	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+	protected Collection<Object> supportedTypes = new ArrayList<>();
 
 	/**
 	 * This constructs an instance.
@@ -365,7 +365,7 @@
 		 */
 		@Override
 		public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
-			final ArrayList<Object> result = new ArrayList<Object>();
+			final ArrayList<Object> result = new ArrayList<>();
 			new CreationSwitch(result, editingDomain).doSwitch((EObject) object);
 			return result;
 		}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceStylePropertyItemProvider.java b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceStylePropertyItemProvider.java
index 129385e..4e82e3c 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceStylePropertyItemProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model.edit/src/org/eclipse/emf/ecp/view/template/style/reference/model/provider/ReferenceStylePropertyItemProvider.java
@@ -1,11 +1,11 @@
 /**
  * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
- * 
+ *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  * EclipseSource Munich - initial API and implementation
  */
@@ -16,12 +16,9 @@
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.common.util.ResourceLocator;
-
 import org.eclipse.emf.ecp.view.template.style.reference.model.VTReferencePackage;
 import org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty;
-
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IChildCreationExtender;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
@@ -39,7 +36,7 @@
  * {@link org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
- * 
+ *
  * @generated
  */
 public class ReferenceStylePropertyItemProvider
@@ -54,7 +51,7 @@
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	public ReferenceStylePropertyItemProvider(AdapterFactory adapterFactory) {
@@ -65,7 +62,7 @@
 	 * This returns the property descriptors for the adapted class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -74,6 +71,7 @@
 			super.getPropertyDescriptors(object);
 
 			addShowCreateAndLinkButtonForCrossReferencesPropertyDescriptor(object);
+			addShowLinkButtonForContainmentReferencesPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -82,7 +80,7 @@
 	 * This adds a property descriptor for the Show Create And Link Button For Cross References feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	protected void addShowCreateAndLinkButtonForCrossReferencesPropertyDescriptor(Object object) {
@@ -103,10 +101,32 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Show Link Button For Containment References feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected void addShowLinkButtonForContainmentReferencesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors
+			.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_ReferenceStyleProperty_showLinkButtonForContainmentReferences_feature"), //$NON-NLS-1$
+				getString("_UI_ReferenceStyleProperty_showLinkButtonForContainmentReferences_description"), //$NON-NLS-1$
+				VTReferencePackage.Literals.REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES,
+				true,
+				false,
+				false,
+				ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				null,
+				null));
+	}
+
+	/**
 	 * This returns ReferenceStyleProperty.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -118,12 +138,12 @@
 	 * This returns the label text for the adapted class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
 	public String getText(Object object) {
-		VTReferenceStyleProperty referenceStyleProperty = (VTReferenceStyleProperty) object;
+		final VTReferenceStyleProperty referenceStyleProperty = (VTReferenceStyleProperty) object;
 		return getString("_UI_ReferenceStyleProperty_type") + " " //$NON-NLS-1$ //$NON-NLS-2$
 			+ referenceStyleProperty.isShowCreateAndLinkButtonForCrossReferences();
 	}
@@ -133,7 +153,7 @@
 	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -142,6 +162,7 @@
 
 		switch (notification.getFeatureID(VTReferenceStyleProperty.class)) {
 		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES:
+		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 			return;
 		}
@@ -153,7 +174,7 @@
 	 * that can be created under this object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
@@ -165,7 +186,7 @@
 	 * Return the resource locator for this item provider's resources.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * 
+	 *
 	 * @generated
 	 */
 	@Override
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/.settings/.api_filters b/bundles/org.eclipse.emf.ecp.view.template.model/.settings/.api_filters
index c21dedf..a590ef5 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/.settings/.api_filters
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/.settings/.api_filters
@@ -314,6 +314,12 @@
                 <message_argument value="STYLE_SELECTOR_CONTAINER__SELECTOR"/>
             </message_arguments>
         </filter>
+        <filter comment="This is a static field" id="403767336">
+            <message_arguments>
+                <message_argument value="org.eclipse.emf.ecp.view.template.model.VTTemplatePackage"/>
+                <message_argument value="eCONTENT_TYPE"/>
+            </message_arguments>
+        </filter>
         <filter comment="spi change" id="403804204">
             <message_arguments>
                 <message_argument value="org.eclipse.emf.ecp.view.template.model.VTTemplatePackage"/>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.template.model/META-INF/MANIFEST.MF
index fafe32a..3252451 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/META-INF/MANIFEST.MF
@@ -2,76 +2,92 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.internal.view.template.model.Activator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.internal.view.template.model;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit,org.eclipse.emf.ecp.view.template.annotation.model.edit",
-  org.eclipse.emf.ecp.view.template.selector.bool.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.bool.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.selector.hierarchy.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.hierarchy.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.selector.viewModelElement.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.alignment.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.alignment.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.background.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.background.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.fontProperties.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.fontProperties.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.keybinding.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.keybinding.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.keybinding.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.labelwidth.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.labelwidth.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.mandatory.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.mandatory.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.reference.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.reference.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.tab.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tab.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.tableValidation.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tableValidation.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.textControlEnablement.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.unsettable.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.unsettable.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.validation.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.validation.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
-  org.eclipse.emf.ecp.view.template.style.wrap.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.wrap.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.template.model.edit"
+Export-Package: org.eclipse.emf.ecp.internal.view.template.model;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit,
+   org.eclipse.emf.ecp.view.template.annotation.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.bool.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.bool.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.alignment.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.background.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.keybinding.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.keybinding.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.keybinding.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.mandatory.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.reference.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.reference.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.tab.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tab.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.unsettable.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.validation.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit",
+ org.eclipse.emf.ecp.view.template.style.wrap.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.wrap.model.util;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.template.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.model
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.ecore b/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.ecore
index 1ccb73e..1ebc43b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.ecore
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.ecore
@@ -5,5 +5,12 @@
   <eClassifiers xsi:type="ecore:EClass" name="ReferenceStyleProperty" eSuperTypes="template.ecore#//StyleProperty">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="showCreateAndLinkButtonForCrossReferences"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="showLinkButtonForContainmentReferences"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyDescription" value="If true, a button to link existing model objects is shown for containment reference controls. Otherwise, the button is hidden. [default: true]"/>
+        <details key="documentation" value="If true, a button to link existing model objects is shown for containment reference controls. Otherwise, the button is hidden."/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
 </ecore:EPackage>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.genmodel b/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.genmodel
index d808559..fbd01dd 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.genmodel
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/model/referenceStyle.genmodel
@@ -17,6 +17,8 @@
       extensibleProviderFactory="true" childCreationExtenders="true" ecorePackage="referenceStyle.ecore#/">
     <genClasses ecoreClass="referenceStyle.ecore#//ReferenceStyleProperty">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute referenceStyle.ecore#//ReferenceStyleProperty/showCreateAndLinkButtonForCrossReferences"/>
+      <genFeatures createChild="false" propertyDescription="If true, a button to link existing model objects is shown for containment reference controls. Otherwise, the button is hidden. [default: true]"
+          ecoreFeature="ecore:EAttribute referenceStyle.ecore#//ReferenceStyleProperty/showLinkButtonForContainmentReferences"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/model/template.ecore b/bundles/org.eclipse.emf.ecp.view.template.model/model/template.ecore
index 761f299..29bd48d 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/model/template.ecore
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/model/template.ecore
@@ -4,7 +4,7 @@
     nsPrefix="org.eclipse.emf.ecp.view.template.model">

   <eClassifiers xsi:type="ecore:EClass" name="ViewTemplate">

     <eStructuralFeatures xsi:type="ecore:EReference" name="controlValidationConfiguration"

-        lowerBound="1" eType="#//ControlValidationTemplate" containment="true"/>

+        eType="#//ControlValidationTemplate" containment="true"/>

     <eStructuralFeatures xsi:type="ecore:EReference" name="styles" upperBound="-1"

         eType="#//Style" containment="true"/>

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="referencedEcores" upperBound="-1"

diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/model/template.genmodel b/bundles/org.eclipse.emf.ecp.view.template.model/model/template.genmodel
index 83d52cc..3df646b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/model/template.genmodel
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/model/template.genmodel
@@ -12,7 +12,7 @@
       interfacePackageSuffix="model" metaDataPackageSuffix="model" classPackageSuffix="model.impl"
       utilityPackageSuffix="model.util" providerPackageSuffix="model.provider" presentationPackageSuffix="model.presentation"
       testsPackageSuffix="model.tests" extensibleProviderFactory="true" childCreationExtenders="true"
-      contentTypeIdentifier="" ecorePackage="template.ecore#/">
+      contentTypeIdentifier="org.eclipse.emf.ecp.view.template.model" ecorePackage="template.ecore#/">
     <genClasses ecoreClass="template.ecore#//ViewTemplate">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference template.ecore#//ViewTemplate/controlValidationConfiguration"/>
       <genFeatures children="true" createChild="true" ecoreFeature="ecore:EReference template.ecore#//ViewTemplate/styles"/>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/plugin.properties b/bundles/org.eclipse.emf.ecp.view.template.model/plugin.properties
index d75a2be..5309e38 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/plugin.properties
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/plugin.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+# Copyright (c) 2011-2019 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
@@ -8,5 +8,6 @@
 # Contributors:
 # EclipseSource Munich - initial API and implementation
 
-pluginName = Template Model
+pluginName = EMFForms ViewTemplate Model
 providerName = Eclipse Modeling Project
+_UI_Template_content_type = EMF Forms View Template File
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml b/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml
index e7dff36..cebcc73 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/plugin.xml
@@ -11,6 +11,28 @@
             class="org.eclipse.emf.ecp.view.template.model.VTTemplatePackage">
       </package>
    </extension>
+
+   <extension point="org.eclipse.emf.ecore.content_parser">
+      <!-- @generated template -->
+      <parser
+            contentTypeIdentifier="org.eclipse.emf.ecp.view.template.model"
+            class="org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl"/>
+   </extension>
+
+   <extension point="org.eclipse.core.contenttype.contentTypes">
+      <!-- @generated template -->
+      <content-type
+            base-type="org.eclipse.emf.ecore.xmi"
+            file-extensions="template"
+            id="org.eclipse.emf.ecp.view.template.model"
+            name="%_UI_Template_content_type"
+            priority="normal">
+         <describer class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+            <parameter name="namespace" value="http://org/eclipse/emf/ecp/view/template/model"/>
+            <parameter name="kind" value="xmi"/>
+         </describer>
+      </content-type>
+   </extension>
    <extension
          name=""
          point="org.eclipse.emf.ecore.generated_package">
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.model/pom.xml
index 431ea38..109a01c 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.template.model</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTTemplatePackage.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTTemplatePackage.java
index ae017fb..487fa24 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTTemplatePackage.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTTemplatePackage.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * EclipseSource Munich - initial API and implementation
+ * Christian W. Damus - bug 544499
  */
 package org.eclipse.emf.ecp.view.template.model;
 
@@ -62,6 +63,16 @@
 	String eNS_PREFIX = "org.eclipse.emf.ecp.view.template.model"; //$NON-NLS-1$
 
 	/**
+	 * The package content type ID.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.20
+	 *        <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eCONTENT_TYPE = "org.eclipse.emf.ecp.view.template.model"; //$NON-NLS-1$
+
+	/**
 	 * The singleton instance of the package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -550,7 +561,6 @@
 	 *
 	 * @since 1.17
 	 *        <!-- end-user-doc -->
-	 *
 	 * @generated
 	 * @ordered
 	 */
@@ -1022,7 +1032,6 @@
 	 *
 	 * @since 1.17
 	 *        <!-- end-user-doc -->
-	 *
 	 * @return the meta object for the containment reference list '<em>Selectors</em>'.
 	 * @see org.eclipse.emf.ecp.view.template.model.VTMultiStyleSelectorContainer#getSelectors()
 	 * @see #getMultiStyleSelectorContainer()
@@ -1398,7 +1407,6 @@
 		 *
 		 * @since 1.17
 		 *        <!-- end-user-doc -->
-		 *
 		 * @generated
 		 */
 		EReference MULTI_STYLE_SELECTOR_CONTAINER__SELECTORS = eINSTANCE.getMultiStyleSelectorContainer_Selectors();
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTViewTemplate.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTViewTemplate.java
index 2b8ff62..4664a4d 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTViewTemplate.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/VTViewTemplate.java
@@ -50,7 +50,7 @@
 	 * @return the value of the '<em>Control Validation Configuration</em>' containment reference.
 	 * @see #setControlValidationConfiguration(VTControlValidationTemplate)
 	 * @see org.eclipse.emf.ecp.view.template.model.VTTemplatePackage#getViewTemplate_ControlValidationConfiguration()
-	 * @model containment="true" required="true"
+	 * @model containment="true"
 	 * @generated
 	 */
 	@Deprecated
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTTemplatePackageImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTTemplatePackageImpl.java
index bbad396..093a54a 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTTemplatePackageImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTTemplatePackageImpl.java
@@ -632,7 +632,7 @@
 		initEClass(viewTemplateEClass, VTViewTemplate.class, "ViewTemplate", !IS_ABSTRACT, !IS_INTERFACE, //$NON-NLS-1$
 			IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getViewTemplate_ControlValidationConfiguration(), getControlValidationTemplate(), null,
-			"controlValidationConfiguration", null, 1, 1, VTViewTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, //$NON-NLS-1$
+			"controlValidationConfiguration", null, 0, 1, VTViewTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, //$NON-NLS-1$
 			IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getViewTemplate_Styles(), getStyle(), null, "styles", null, 0, -1, VTViewTemplate.class, //$NON-NLS-1$
 			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTViewTemplateImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTViewTemplateImpl.java
index b57585d..f7112d5 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTViewTemplateImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/model/impl/VTViewTemplateImpl.java
@@ -103,9 +103,8 @@
 
 	/**
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
 	 * @deprecated
+	 * <!-- end-user-doc -->
 	 *
 	 * @generated
 	 */
@@ -140,9 +139,8 @@
 
 	/**
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * 
 	 * @deprecated
+	 * <!-- end-user-doc -->
 	 *
 	 * @generated
 	 */
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferencePackage.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferencePackage.java
index 04bcc32..6ed579b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferencePackage.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferencePackage.java
@@ -27,10 +27,9 @@
  * <li>each enum,</li>
  * <li>and each data type</li>
  * </ul>
- * 
+ *
  * @since 1.18
  *        <!-- end-user-doc -->
- *
  * @see org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceFactory
  * @model kind="package"
  * @generated
@@ -98,6 +97,17 @@
 		+ 0;
 
 	/**
+	 * The feature id for the '<em><b>Show Link Button For Containment References</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES = VTTemplatePackage.STYLE_PROPERTY_FEATURE_COUNT
+		+ 1;
+
+	/**
 	 * The number of structural features of the '<em>Style Property</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -105,7 +115,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REFERENCE_STYLE_PROPERTY_FEATURE_COUNT = VTTemplatePackage.STYLE_PROPERTY_FEATURE_COUNT + 1;
+	int REFERENCE_STYLE_PROPERTY_FEATURE_COUNT = VTTemplatePackage.STYLE_PROPERTY_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Style Property</em>' class.
@@ -145,6 +155,20 @@
 	EAttribute getReferenceStyleProperty_ShowCreateAndLinkButtonForCrossReferences();
 
 	/**
+	 * Returns the meta object for the attribute
+	 * '{@link org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty#isShowLinkButtonForContainmentReferences
+	 * <em>Show Link Button For Containment References</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Show Link Button For Containment References</em>'.
+	 * @see org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty#isShowLinkButtonForContainmentReferences()
+	 * @see #getReferenceStyleProperty()
+	 * @generated
+	 */
+	EAttribute getReferenceStyleProperty_ShowLinkButtonForContainmentReferences();
+
+	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193,6 +217,17 @@
 		EAttribute REFERENCE_STYLE_PROPERTY__SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES = eINSTANCE
 			.getReferenceStyleProperty_ShowCreateAndLinkButtonForCrossReferences();
 
+		/**
+		 * The meta object literal for the '<em><b>Show Link Button For Containment References</b></em>' attribute
+		 * feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES = eINSTANCE
+			.getReferenceStyleProperty_ShowLinkButtonForContainmentReferences();
+
 	}
 
 } // VTReferencePackage
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferenceStyleProperty.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferenceStyleProperty.java
index ec9c24e..8f26c91 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferenceStyleProperty.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/VTReferenceStyleProperty.java
@@ -26,6 +26,8 @@
  *        <ul>
  *        <li>{@link org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty#isShowCreateAndLinkButtonForCrossReferences
  *        <em>Show Create And Link Button For Cross References</em>}</li>
+ *        <li>{@link org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty#isShowLinkButtonForContainmentReferences
+ *        <em>Show Link Button For Containment References</em>}</li>
  *        </ul>
  *
  * @see org.eclipse.emf.ecp.view.template.style.reference.model.VTReferencePackage#getReferenceStyleProperty()
@@ -64,4 +66,43 @@
 	 */
 	void setShowCreateAndLinkButtonForCrossReferences(boolean value);
 
+	/**
+	 * Returns the value of the '<em><b>Show Link Button For Containment References</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.20
+	 *        <!-- end-user-doc -->
+	 *        <!-- begin-model-doc -->
+	 *        If true, a button to link existing model objects is shown for containment reference controls. Otherwise,
+	 *        the
+	 *        button is hidden.
+	 *        <!-- end-model-doc -->
+	 *
+	 * @return the value of the '<em>Show Link Button For Containment References</em>' attribute.
+	 * @see #setShowLinkButtonForContainmentReferences(boolean)
+	 * @see org.eclipse.emf.ecp.view.template.style.reference.model.VTReferencePackage#getReferenceStyleProperty_ShowLinkButtonForContainmentReferences()
+	 * @model default="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel propertyDescription='If true, a button to link
+	 *        existing model objects is shown for containment reference controls. Otherwise, the button is hidden.
+	 *        [default: true]'"
+	 * @generated
+	 */
+	boolean isShowLinkButtonForContainmentReferences();
+
+	/**
+	 * Sets the value of the
+	 * '{@link org.eclipse.emf.ecp.view.template.style.reference.model.VTReferenceStyleProperty#isShowLinkButtonForContainmentReferences
+	 * <em>Show Link Button For Containment References</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * 
+	 * @since 1.20
+	 *        <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Show Link Button For Containment References</em>' attribute.
+	 * @see #isShowLinkButtonForContainmentReferences()
+	 * @generated
+	 */
+	void setShowLinkButtonForContainmentReferences(boolean value);
+
 } // VTReferenceStyleProperty
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferencePackageImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferencePackageImpl.java
index 47e286a..61230b7 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferencePackageImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferencePackageImpl.java
@@ -85,9 +85,10 @@
 		}
 
 		// Obtain or create and register package
-		final VTReferencePackageImpl theReferencePackage = (VTReferencePackageImpl) (EPackage.Registry.INSTANCE
-			.get(eNS_URI) instanceof VTReferencePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI)
-				: new VTReferencePackageImpl());
+		final Object registeredReferencePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		final VTReferencePackageImpl theReferencePackage = registeredReferencePackage instanceof VTReferencePackageImpl
+			? (VTReferencePackageImpl) registeredReferencePackage
+			: new VTReferencePackageImpl();
 
 		isInited = true;
 
@@ -137,6 +138,17 @@
 	 * @generated
 	 */
 	@Override
+	public EAttribute getReferenceStyleProperty_ShowLinkButtonForContainmentReferences() {
+		return (EAttribute) referenceStylePropertyEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public VTReferenceFactory getReferenceFactory() {
 		return (VTReferenceFactory) getEFactoryInstance();
 	}
@@ -167,6 +179,8 @@
 		referenceStylePropertyEClass = createEClass(REFERENCE_STYLE_PROPERTY);
 		createEAttribute(referenceStylePropertyEClass,
 			REFERENCE_STYLE_PROPERTY__SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES);
+		createEAttribute(referenceStylePropertyEClass,
+			REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES);
 	}
 
 	/**
@@ -214,6 +228,9 @@
 			ecorePackage.getEBoolean(), "showCreateAndLinkButtonForCrossReferences", "true", 0, 1, //$NON-NLS-1$ //$NON-NLS-2$
 			VTReferenceStyleProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
 			IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReferenceStyleProperty_ShowLinkButtonForContainmentReferences(), ecorePackage.getEBoolean(),
+			"showLinkButtonForContainmentReferences", "true", 0, 1, VTReferenceStyleProperty.class, !IS_TRANSIENT, //$NON-NLS-1$ //$NON-NLS-2$
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		// Create resource
 		createResource(eNS_URI);
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferenceStylePropertyImpl.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferenceStylePropertyImpl.java
index e5fcdc1..1d0201b 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferenceStylePropertyImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/impl/VTReferenceStylePropertyImpl.java
@@ -30,6 +30,8 @@
  * <ul>
  * <li>{@link org.eclipse.emf.ecp.view.template.style.reference.model.impl.VTReferenceStylePropertyImpl#isShowCreateAndLinkButtonForCrossReferences
  * <em>Show Create And Link Button For Cross References</em>}</li>
+ * <li>{@link org.eclipse.emf.ecp.view.template.style.reference.model.impl.VTReferenceStylePropertyImpl#isShowLinkButtonForContainmentReferences
+ * <em>Show Link Button For Containment References</em>}</li>
  * </ul>
  *
  * @generated
@@ -60,6 +62,30 @@
 	protected boolean showCreateAndLinkButtonForCrossReferences = SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #isShowLinkButtonForContainmentReferences() <em>Show Link Button For Containment
+	 * References</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isShowLinkButtonForContainmentReferences()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isShowLinkButtonForContainmentReferences() <em>Show Link Button For Containment
+	 * References</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isShowLinkButtonForContainmentReferences()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean showLinkButtonForContainmentReferences = SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES_EDEFAULT;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 *
@@ -115,10 +141,40 @@
 	 * @generated
 	 */
 	@Override
+	public boolean isShowLinkButtonForContainmentReferences() {
+		return showLinkButtonForContainmentReferences;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setShowLinkButtonForContainmentReferences(boolean newShowLinkButtonForContainmentReferences) {
+		final boolean oldShowLinkButtonForContainmentReferences = showLinkButtonForContainmentReferences;
+		showLinkButtonForContainmentReferences = newShowLinkButtonForContainmentReferences;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET,
+				VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES,
+				oldShowLinkButtonForContainmentReferences, showLinkButtonForContainmentReferences));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES:
 			return isShowCreateAndLinkButtonForCrossReferences();
+		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES:
+			return isShowLinkButtonForContainmentReferences();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -135,6 +191,9 @@
 		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES:
 			setShowCreateAndLinkButtonForCrossReferences((Boolean) newValue);
 			return;
+		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES:
+			setShowLinkButtonForContainmentReferences((Boolean) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -151,6 +210,9 @@
 		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES:
 			setShowCreateAndLinkButtonForCrossReferences(SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES_EDEFAULT);
 			return;
+		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES:
+			setShowLinkButtonForContainmentReferences(SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES_EDEFAULT);
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -166,6 +228,8 @@
 		switch (featureID) {
 		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES:
 			return showCreateAndLinkButtonForCrossReferences != SHOW_CREATE_AND_LINK_BUTTON_FOR_CROSS_REFERENCES_EDEFAULT;
+		case VTReferencePackage.REFERENCE_STYLE_PROPERTY__SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES:
+			return showLinkButtonForContainmentReferences != SHOW_LINK_BUTTON_FOR_CONTAINMENT_REFERENCES_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -182,9 +246,11 @@
 			return super.toString();
 		}
 
-		final StringBuffer result = new StringBuffer(super.toString());
+		final StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (showCreateAndLinkButtonForCrossReferences: "); //$NON-NLS-1$
 		result.append(showCreateAndLinkButtonForCrossReferences);
+		result.append(", showLinkButtonForContainmentReferences: "); //$NON-NLS-1$
+		result.append(showLinkButtonForContainmentReferences);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceAdapterFactory.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceAdapterFactory.java
index 907f87e..4b5cafe 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceAdapterFactory.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceAdapterFactory.java
@@ -23,10 +23,9 @@
  * <!-- begin-user-doc -->
  * The <b>Adapter Factory</b> for the model.
  * It provides an adapter <code>createXXX</code> method for each class of the model.
- * 
+ *
  * @since 1.18
  *        <!-- end-user-doc -->
- *
  * @see org.eclipse.emf.ecp.view.template.style.reference.model.VTReferencePackage
  * @generated
  */
diff --git a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceSwitch.java b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceSwitch.java
index c4bd876..9ba4910 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceSwitch.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.model/src/org/eclipse/emf/ecp/view/template/style/reference/model/util/ReferenceSwitch.java
@@ -27,10 +27,9 @@
  * and proceeding up the inheritance hierarchy
  * until a non-null result is returned,
  * which is the result of the switch.
- * 
+ *
  * @since 1.18
  *        <!-- end-user-doc -->
- *
  * @see org.eclipse.emf.ecp.view.template.style.reference.model.VTReferencePackage
  * @generated
  */
diff --git a/bundles/org.eclipse.emf.ecp.view.template.service/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.template.service/META-INF/MANIFEST.MF
index 19e202b..ac60424 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.service/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewTemplate Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.service;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.template.service.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.spi.view.template.service;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.service;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.spi.view.template.service;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.service;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.service
 Service-Component: OSGI-INF/viewTemplate.xml,OSGI-INF/ViewTemplateSupplierImpl.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.template.service/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.service/pom.xml
index 0ad0132..4e4b715 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.service/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.service/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.template.service</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <properties>

   	<jacoco.percentage.instruction>0.1</jacoco.percentage.instruction>

diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.template.tooling/META-INF/MANIFEST.MF
index 57d82e5..17b510c 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/META-INF/MANIFEST.MF
@@ -2,41 +2,41 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Template Tooling
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.tooling;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.template.internal.tooling.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.template.internal.tooling;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.internal.tooling.controls;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.internal.tooling.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.tooling;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.tooling.editor;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.tooling.wizards;version="1.19.0";x-friends:="org.eclipse.emf.ecp.ide.editor.view.templatebridge"
+Export-Package: org.eclipse.emf.ecp.view.template.internal.tooling;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.internal.tooling.controls;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.internal.tooling.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.tooling;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.tooling.editor;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.tooling.wizards;version="1.20.0";x-friends:="org.eclipse.emf.ecp.ide.editor.view.templatebridge"
 Require-Bundle: org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.ui;bundle-version="[3.100.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.migrator;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.ui.ide;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.ui;bundle-version="[3.100.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0"
+Import-Package: org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.tooling
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/plugin.xml b/bundles/org.eclipse.emf.ecp.view.template.tooling/plugin.xml
index a635ec2..1494a3a 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/plugin.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/plugin.xml
@@ -18,7 +18,7 @@
          point="org.eclipse.ui.editors">
       <editor
             class="org.eclipse.emf.ecp.view.template.tooling.editor.TemplateModelEditorPart"
-            default="false"
+            default="true"
             extensions="template"
             icon="icons/template.gif"
             id="org.eclipse.emf.ecp.view.template.tooling.editor"
@@ -28,6 +28,8 @@
    <extension
          name=""
          point="org.eclipse.emf.ecp.view.model.provider.xmi.file">
+	  <file 
+	  		filePath="viewmodel/MultiStyleSelectorContainer.view"/>
       <file
             filePath="viewmodel/KeyBindings.view">
       </file>
@@ -40,6 +42,9 @@
       <file
             filePath="viewmodel/template.view">
       </file>
+      <file
+            filePath="viewmodel/Style.view">
+      </file>
    </extension>
    <extension
          name=""
@@ -82,4 +87,7 @@
       </renderer>
    </extension>
 
+   <extension point="org.eclipse.emf.ecp.view.template">
+      <viewTemplate xmi="viewmodel/templateEditor.template"/>
+    </extension>
 </plugin>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/pom.xml b/bundles/org.eclipse.emf.ecp.view.template.tooling/pom.xml
index 41950df..4a7fc89 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/editor/TemplateModelEditorPart.java b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/editor/TemplateModelEditorPart.java
index 2fc4c24..23ba1d7 100644
--- a/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/editor/TemplateModelEditorPart.java
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/src/org/eclipse/emf/ecp/view/template/tooling/editor/TemplateModelEditorPart.java
@@ -239,4 +239,10 @@
 		}
 		return uris;
 	}
+
+	@Override
+	protected boolean enableValidation() {
+		return true;
+	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/MultiStyleSelectorContainer.view b/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/MultiStyleSelectorContainer.view
new file mode 100644
index 0000000..8789337
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/MultiStyleSelectorContainer.view
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_pqX6UBuAEemsneQNT8DsOg" name="MultiStyleSelectorContainer">
+  <rootEClass href="http://org/eclipse/emf/ecp/view/template/model#//MultiStyleSelectorContainer"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_pq1NUBuAEemsneQNT8DsOg" name="Control selectors">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_pq1NURuAEemsneQNT8DsOg">
+      <domainModelEFeature xsi:type="ecore:EReference" href="http://org/eclipse/emf/ecp/view/template/model#//MultiStyleSelectorContainer/selectors"/>
+    </domainModelReference>
+  </children>
+  <ecorePaths>/org.eclipse.emf.ecp.view.template.model/model/template.ecore</ecorePaths>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/Style.view b/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/Style.view
new file mode 100644
index 0000000..0f886ff
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/Style.view
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_nr7fABswEemi2t7e-tayrA" name="Style">
+  <rootEClass href="http://org/eclipse/emf/ecp/view/template/model#//Style"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_nsCzwBswEemi2t7e-tayrA" name="Control selector">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_nsDa0BswEemi2t7e-tayrA">
+      <domainModelEFeature xsi:type="ecore:EReference" href="http://org/eclipse/emf/ecp/view/template/model#//StyleSelectorContainer/selector"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_nsDa0RswEemi2t7e-tayrA" name="Control properties">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_nsDa0hswEemi2t7e-tayrA">
+      <domainModelEFeature xsi:type="ecore:EReference" href="http://org/eclipse/emf/ecp/view/template/model#//Style/properties"/>
+    </domainModelReference>
+  </children>
+  <ecorePaths>/org.eclipse.emf.ecp.view.template.model/model/template.ecore</ecorePaths>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/templateEditor.template b/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/templateEditor.template
new file mode 100644
index 0000000..6397519
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.template.tooling/viewmodel/templateEditor.template
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.template.model:ViewTemplate xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmlns:org.eclipse.emf.ecp.view.template.model="http://org/eclipse/emf/ecp/view/template/model" xmlns:org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model="http://www.eclipse.org/emf/ecp/view/template/selector/domainmodelreference/model" xmlns:org.eclipse.emf.ecp.view.template.style.reference.model="http://www.eclipse.org/emf/ecp/view/template/style/reference/model">
+  <styles>
+    <selector xsi:type="org.eclipse.emf.ecp.view.template.selector.domainmodelreference.model:DomainModelReferenceSelector">
+      <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference">
+        <domainModelEFeature xsi:type="ecore:EReference" href="http://org/eclipse/emf/ecp/view/template/model#//StyleSelectorContainer/selector"/>
+      </domainModelReference>
+    </selector>
+    <properties xsi:type="org.eclipse.emf.ecp.view.template.style.reference.model:ReferenceStyleProperty" showLinkButtonForContainmentReferences="false"/>
+  </styles>
+</org.eclipse.emf.ecp.view.template.model:ViewTemplate>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/META-INF/MANIFEST.MF
index 4347c77..aec517c 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.treemasterdetail.model.provider.TreeMasterDetailEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/pom.xml
index 4efd919..60d2fdd 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model.edit/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.treemasterdetail.model.edit</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/META-INF/MANIFEST.MF
index 945f58c..88482ff 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model.edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt",
-  org.eclipse.emf.ecp.view.treemasterdetail.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.treemasterdetail.model.util;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model.edit"
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.model;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model.edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt",
+ org.eclipse.emf.ecp.view.treemasterdetail.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.model.util;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.treemasterdetail.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.model
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/pom.xml
index e72df0a..6c91329 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.model/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.treemasterdetail.model</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/META-INF/MANIFEST.MF
index f8de290..7bc0067 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/META-INF/MANIFEST.MF
@@ -2,42 +2,42 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Vertical UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.treemasterdetail.ui.swt.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.treemasterdetail.ui.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.19.0",
-  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.edit.ui.action.ecp;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.treemasterdetail.ui.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.20.0",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.edit.ui.action.ecp;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.dnd;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.core.commands;version="0.0.0",
+ org.eclipse.emf.edit.ui.dnd;version="0.0.0",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.dnd;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt
 Service-Component: OSGI-INF/TreeMasterDetailSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/pom.xml
index 4292a41..611af74 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.treemasterdetail.ui.swt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailSWTRenderer.java
index 63b260b..36fd8aa 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt/src/org/eclipse/emf/ecp/view/spi/treemasterdetail/ui/swt/TreeMasterDetailSWTRenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -11,6 +11,7 @@
  * Eugen Neufeld - Refactoring
  * Alexandra Buzila - Refactoring
  * Johannes Faltermeier - integration with validation service
+ * Christian W. Damus - bug 543376
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;
 
@@ -64,6 +65,7 @@
 import org.eclipse.emf.ecp.view.spi.provider.ViewProviderHelper;
 import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emf.ecp.view.spi.swt.services.ECPSelectionProviderService;
 import org.eclipse.emf.ecp.view.treemasterdetail.model.VTreeMasterDetail;
 import org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal.RootObject;
 import org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.internal.TreeMasterDetailSelectionManipulatorHelper;
@@ -467,6 +469,11 @@
 				treeViewer.removeSelectionChangedListener(treeMasterViewSelectionListener);
 			}
 		});
+
+		// Register my tree viewer as the selection provider for my element
+		getViewModelContext().getService(ECPSelectionProviderService.class)
+			.registerSelectionProvider(getVElement(), treeViewer);
+
 		return treeViewer;
 	}
 
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/META-INF/MANIFEST.MF
index 26c825e..a9d7d8f 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms TreeMasterDetail Services
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.validation;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.internal.validation;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.internal.validation;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.validation
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.viewers;version="0.0.0"
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.viewers;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/pom.xml b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/pom.xml
index 01f196e..a41be9c 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.treemasterdetail.validation</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/src/org/eclipse/emf/ecp/view/treemasterdetail/internal/validation/TreeMasterDetailValidationInitiator.java b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/src/org/eclipse/emf/ecp/view/treemasterdetail/internal/validation/TreeMasterDetailValidationInitiator.java
index 8209944..8e4bf5f 100644
--- a/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/src/org/eclipse/emf/ecp/view/treemasterdetail/internal/validation/TreeMasterDetailValidationInitiator.java
+++ b/bundles/org.eclipse.emf.ecp.view.treemasterdetail.validation/src/org/eclipse/emf/ecp/view/treemasterdetail/internal/validation/TreeMasterDetailValidationInitiator.java
@@ -11,6 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.treemasterdetail.internal.validation;
 
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -89,12 +90,8 @@
 						// For every removed child object, remove this listener and the TMD Validation Initiator as
 						// context users from the child object's context. This allows that the child context is disposed
 						// once its other listeners are removed, too.
-						for (final Object child : childrenTreeContextEntry) {
-							final ViewModelContext childContext = getExistingOrNewChildContext(treeContextEntry, child);
-							childContext.removeContextUser(this);
-							childContext.removeContextUser(TreeMasterDetailValidationInitiator.this);
-							mapping.get(treeContextEntry).remove(child);
-						}
+						final Object oldValue = notification.getRawNotification().getOldValue();
+						cleanupRemovedValues(oldValue, treeContextEntry);
 					}
 					return;
 				}
@@ -110,6 +107,38 @@
 		}
 
 		/**
+		 * Cleans up the removed values.
+		 * For every removed child object, remove this listener and the TMD Validation Initiator as
+		 * context users from the child object's context. This allows that the child context is disposed
+		 * once its other listeners are removed, too.
+		 *
+		 * @param removedValueObject the removed value object.
+		 * @param treeContextEntry the {@link TreeContextMapping} to retrieve the view model context to remove the
+		 *            context users from.
+		 */
+		private void cleanupRemovedValues(Object removedValueObject, TreeContextMapping treeContextEntry) {
+			if (removedValueObject != null) {
+				final Set<Object> removedChildren = new HashSet<Object>();
+				if (removedValueObject instanceof Collection) {
+					for (final Object removedListObject : (Collection<?>) removedValueObject) {
+						if (removedListObject instanceof EObject) {
+							removedChildren.add(removedListObject);
+						}
+					}
+				} else if (removedValueObject instanceof EObject) {
+					removedChildren.add(removedValueObject);
+				}
+				for (final Object removedChild : removedChildren) {
+					final ViewModelContext childContext = getExistingOrNewChildContext(treeContextEntry,
+						removedChild);
+					childContext.removeContextUser(this);
+					childContext.removeContextUser(TreeMasterDetailValidationInitiator.this);
+					mapping.get(treeContextEntry).remove(removedChild);
+				}
+			}
+		}
+
+		/**
 		 * Checks whether a child object has been removed by looking at the notification type and comparing the actual
 		 * children object to the children object known to the TreeMasterDetailValidationInitiator.
 		 *
diff --git a/bundles/org.eclipse.emf.ecp.view.unset/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.unset/META-INF/MANIFEST.MF
index 358269e..1562267 100644
--- a/bundles/org.eclipse.emf.ecp.view.unset/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.unset/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Unset Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.unset;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.unset;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.unset.test"
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.unset;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.unset.test"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.unset
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emf.ecp.view.unset/pom.xml b/bundles/org.eclipse.emf.ecp.view.unset/pom.xml
index 03bd47c..0162c40 100644
--- a/bundles/org.eclipse.emf.ecp.view.unset/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.unset/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <artifactId>org.eclipse.emf.ecp.view.unset</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <groupId>org.eclipse.emf.ecp</groupId>

 

diff --git a/bundles/org.eclipse.emf.ecp.view.util.swt.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.util.swt.rap/META-INF/MANIFEST.MF
index 714dbe7..7fae319 100644
--- a/bundles/org.eclipse.emf.ecp.view.util.swt.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.util.swt.rap/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Util RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.util.swt.rap
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.util.swt.rap;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.internal.util.swt.rap;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.rap.rwt;bundle-version="[3.1.0,4.0.0)"
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.rap.rwt;bundle-version="[3.1.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emf.ecp.view.internal.util.swt.rap.EMFFormsSWTLayoutDirect.xml,OSGI-INF/org.eclipse.emf.ecp.view.internal.util.swt.rap.RAPImageRegistryService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.swt.core.layout;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.osgi.framework;version="1.3.0",
-  org.osgi.service.component.annotations;version="1.2.0"
+Import-Package: org.eclipse.emfforms.spi.swt.core.layout;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.osgi.framework;version="1.3.0",
+ org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.util.swt.rap
diff --git a/bundles/org.eclipse.emf.ecp.view.util.swt.rap/pom.xml b/bundles/org.eclipse.emf.ecp.view.util.swt.rap/pom.xml
index 1c1d903..5364ecc 100644
--- a/bundles/org.eclipse.emf.ecp.view.util.swt.rap/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.util.swt.rap/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.util.swt.rap</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.util.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.util.swt/META-INF/MANIFEST.MF
index 3aba568..7fd4a2c 100644
--- a/bundles/org.eclipse.emf.ecp.view.util.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.util.swt/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Util
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.util.swt
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.util.swt;version="1.19.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.util.swt;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.util.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.util.swt;version="1.20.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/rcpImageRegistry.xml
+Automatic-Module-Name: org.eclipse.emf.ecp.view.util.swt
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.swt.graphics;version="0.0.0",
  org.osgi.framework;version="0.0.0"
+Service-Component: OSGI-INF/rcpImageRegistry.xml
 Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.emf.ecp.view.util.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.util.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.util.swt/pom.xml
index 829dbaf..9228fb7 100644
--- a/bundles/org.eclipse.emf.ecp.view.util.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.util.swt/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.util.swt</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean.default/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/META-INF/MANIFEST.MF
index a5b0e2a..e9059ba 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation.bean.default/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default Bean Validation
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.bean.default;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.validation.bean;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.validation.bean;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.validation.bean.default
 Import-Package: javax.validation;version="[1.0.0,2.0.0)"
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean.default/pom.xml b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/pom.xml
index 9b5eda4..45bc5e8 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation.bean.default/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean.default/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.validation.bean.default</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.validation.bean/META-INF/MANIFEST.MF
index 37d48a1..9c998cd 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation.bean/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms BeanValidation
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.bean;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.validation.bean.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.validation.bean;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.validation.bean;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.validation.bean;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.validation;version="[1.0.0,2.0.0)",
-  javax.validation.bootstrap;version="[1.0.0,2.0.0)",
-  org.apache.commons.logging;version="[1.1.0,2.0.0)"
+ javax.validation.bootstrap;version="[1.0.0,2.0.0)",
+ org.apache.commons.logging;version="[1.1.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.validation.bean
diff --git a/bundles/org.eclipse.emf.ecp.view.validation.bean/pom.xml b/bundles/org.eclipse.emf.ecp.view.validation.bean/pom.xml
index b6770d4..e0dbfcf 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation.bean/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.validation.bean/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.validation.bean</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.validation/META-INF/MANIFEST.MF
index 689f1a9..3f2742a 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.validation/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Validation Service
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.validation.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.validation;version="1.19.0";
-   x-friends:="org.eclipse.emf.ecp.view.table.ui,
-    org.eclipse.emf.ecp.view.custom.ui,
-    org.eclipse.emf.ecp.edit.swt,
-    org.eclipse.emf.ecp.test.model",
-  org.eclipse.emf.ecp.view.spi.validation;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.validation;version="1.20.0";
+  x-friends:="org.eclipse.emf.ecp.view.table.ui,
+   org.eclipse.emf.ecp.view.custom.ui,
+   org.eclipse.emf.ecp.edit.swt,
+   org.eclipse.emf.ecp.test.model",
+ org.eclipse.emf.ecp.view.spi.validation;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.controlmapper;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.controlmapper;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emf.ecp.view.validation
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/pom.xml b/bundles/org.eclipse.emf.ecp.view.validation/pom.xml
index 432e154..3186de3 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.validation/pom.xml
@@ -7,13 +7,13 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.view.validation</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 

 </project>

diff --git a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ConcurrentLinkedSetQueue.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ConcurrentLinkedSetQueue.java
new file mode 100644
index 0000000..657158e
--- /dev/null
+++ b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ConcurrentLinkedSetQueue.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * nicole.behlen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.validation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * An extension of {@link ConcurrentLinkedQueue} that additionally contains a set to avoid unnecessary
+ * duplicated entries in cases of non-concurrent additions.
+ * Duplication may still occur if multiple threads enqueue the same objects.
+ *
+ * @author nicole.behlen
+ *
+ * @param <E> the generic type of the elements to be queued.
+ */
+public class ConcurrentLinkedSetQueue<E> extends ConcurrentLinkedQueue<E> {
+
+	private static final long serialVersionUID = 290189755090394151L;
+
+	private final Set<Object> concurrentSet = Collections.newSetFromMap(new ConcurrentHashMap<Object, Boolean>());
+
+	/**
+	 * Adds the object to the tail of this queue, if not already contained.
+	 *
+	 * @param e adds if not already contained the object to the tail of this queue
+	 * @return <code>false</code> if object is already contained in queue, <code>true</code> otherwise.
+	 * @throws NullPointerException - if the specified element is null
+	 */
+	@Override
+	public boolean offer(E e) {
+		if (e == null) {
+			throw new NullPointerException();
+		}
+		if (!concurrentSet.contains(e)) {
+			concurrentSet.add(e);
+			return super.offer(e);
+		}
+		return false;
+	}
+
+	@Override
+	public E poll() {
+		final E next = super.poll();
+		if (next != null) {
+			concurrentSet.remove(next);
+		}
+		return next;
+	}
+
+	@Override
+	public boolean remove(Object o) {
+		if (o != null) {
+			concurrentSet.remove(o);
+		}
+		return super.remove(o);
+	}
+
+	@Override
+	public boolean addAll(Collection<? extends E> c) {
+		if (c == this) {
+			// As historically specified in AbstractQueue#addAll
+			throw new IllegalArgumentException();
+		}
+
+		final List<E> newColl = new ArrayList<>(c);
+		newColl.removeAll(concurrentSet);
+		concurrentSet.addAll(newColl);
+		return super.addAll(newColl);
+	}
+
+	@Override
+	public Iterator<E> iterator() {
+		final Iterator<E> iter = super.iterator();
+		return new IterWithRemove<>(iter);
+	}
+
+	/**
+	 *
+	 * Iterator over the elements of this queue in proper sequence, that removes
+	 * the elements from the {@link ConcurrentLinkedSetQueue#concurrentSet}.
+	 *
+	 * @author nicole.behlen
+	 *
+	 * @param <I> the generic type of the elements to iterate.
+	 */
+	private class IterWithRemove<I> implements Iterator<I> {
+
+		private final Iterator<I> delegate;
+
+		private I lastReturnedElement;
+
+		/**
+		 * Constructor setting the original iterator.
+		 */
+		IterWithRemove(Iterator<I> delegate) {
+			this.delegate = delegate;
+		}
+
+		@Override
+		public boolean hasNext() {
+			return this.delegate.hasNext();
+		}
+
+		@Override
+		public I next() {
+			if (this.delegate.hasNext()) {
+				lastReturnedElement = this.delegate.next();
+				return lastReturnedElement;
+			}
+			lastReturnedElement = null;
+			throw new NoSuchElementException();
+		}
+
+		@Override
+		public void remove() {
+			if (lastReturnedElement != null) {
+				concurrentSet.remove(lastReturnedElement);
+				lastReturnedElement = null;
+			}
+			delegate.remove();
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ECPSubstitutionLabelProvider.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ECPSubstitutionLabelProvider.java
index 9a8c706..88601ea 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ECPSubstitutionLabelProvider.java
+++ b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ECPSubstitutionLabelProvider.java
@@ -17,6 +17,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -43,11 +44,6 @@
 		adapterFactoryItemDelegator = new AdapterFactoryItemDelegator(factory);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider#getObjectLabel(org.eclipse.emf.ecore.EObject)
-	 */
 	@Override
 	public String getObjectLabel(EObject eObject) {
 		final Object provider = factory.adapt(
@@ -59,18 +55,18 @@
 		return IItemLabelProvider.class.cast(provider).getText(eObject);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider#getFeatureLabel(org.eclipse.emf.ecore.EStructuralFeature)
-	 */
 	@Override
 	public String getFeatureLabel(EStructuralFeature eStructuralFeature) {
 		final EClass eClass = eStructuralFeature.getEContainingClass();
 		if (eClass.isInterface() || eClass.isAbstract()) {
 			return eStructuralFeature.getName();
 		}
-		final EObject tempInstance = EcoreUtil.create(eClass);
+		EObject tempInstance;
+		if (eClass.getInstanceClass() != null) {
+			tempInstance = EcoreUtil.create(eClass);
+		} else {
+			tempInstance = new DynamicEObjectImpl(eClass);
+		}
 		final IItemPropertyDescriptor itemPropertyDescriptor = adapterFactoryItemDelegator.getPropertyDescriptor(
 			tempInstance, eStructuralFeature);
 
diff --git a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ValidationServiceImpl.java b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ValidationServiceImpl.java
index 0416ae9..0086f51 100644
--- a/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ValidationServiceImpl.java
+++ b/bundles/org.eclipse.emf.ecp.view.validation/src/org/eclipse/emf/ecp/view/internal/validation/ValidationServiceImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,7 +8,7 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
- * Christian W. Damus - bug 533522
+ * Christian W. Damus - bugs 533522, 543160
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.validation;
 
@@ -23,8 +23,8 @@
 import java.util.Queue;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Function;
 
 import org.eclipse.core.databinding.observable.IObserving;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
@@ -63,6 +63,7 @@
 import org.eclipse.emfforms.spi.common.report.AbstractReport;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.controlmapper.EMFFormsSettingToControlMapper;
+import org.eclipse.emfforms.spi.core.services.controlmapper.SubControlMapper;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedReport;
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
@@ -304,7 +305,7 @@
 		@Override
 		public void notifyAdd(Notifier notifier) {
 			if (notifier == context.getDomainModel()) {
-				validate(getAllEObjectsToValidate());
+				validate(getAllEObjectsToValidate(context));
 			}
 		}
 
@@ -318,10 +319,16 @@
 	private ValidationDomainModelChangeListener domainChangeListener;
 	private ViewModelChangeListener viewChangeListener;
 	private ViewModelContext context;
-	private final Queue<EObject> validationQueue = new ConcurrentLinkedQueue<EObject>();
+	private final Queue<EObject> validationQueue = new ConcurrentLinkedSetQueue<EObject>();
 	private final Set<EObject> validated = Collections.newSetFromMap(new ConcurrentHashMap<EObject, Boolean>());
 	private final AtomicBoolean validationRunning = new AtomicBoolean(false);
-	private final Map<UniqueSetting, VDiagnostic> currentUpdates = new ConcurrentHashMap<UniqueSetting, VDiagnostic>();
+
+	// In a typical application, these lists will usually have zero or one element. In
+	// any case, uniqueness is ensured by the validation algorithm and so needs not be
+	// enforced by the collection, so just use simple lists
+	private final Map<UniqueSetting, List<Diagnostic>> currentUpdates = new ConcurrentHashMap<UniqueSetting, List<Diagnostic>>();
+	private final Function<Object, List<Diagnostic>> diagnosticListFactory = __ -> new ArrayList<>(3);
+
 	private ComposedAdapterFactory adapterFactory;
 	private ReportService reportService;
 
@@ -454,12 +461,32 @@
 		return result;
 	}
 
-	private Collection<EObject> getAllEObjectsToValidate() {
-		return getAllEObjectsToValidate(controlMapper);
+	private Collection<EObject> getAllEObjectsToValidate(ViewModelContext context) {
+		return getAllEObjectsToValidate(context, controlMapper);
 	}
 
-	private static Collection<EObject> getAllEObjectsToValidate(EMFFormsSettingToControlMapper controlMapper) {
-		return controlMapper.getEObjectsWithSettings();
+	private static Collection<EObject> getAllEObjectsToValidate(ViewModelContext context,
+		EMFFormsSettingToControlMapper controlMapper) {
+
+		if (context.getParentContext() == null || !(controlMapper instanceof SubControlMapper)) {
+			// Easy: validate the whole model
+			return controlMapper.getEObjectsWithSettings();
+		}
+
+		final SubControlMapper subMapper = (SubControlMapper) controlMapper;
+		final Collection<EObject> result = subMapper.getEObjectsWithSettings(context.getViewModel());
+
+		// And all container objects that have settings
+		for (ViewModelContext parent = context.getParentContext(); parent != null; parent = parent
+			.getParentContext()) {
+
+			final EObject parentObject = parent.getDomainModel();
+			if (controlMapper.hasControlsFor(parentObject)) {
+				result.add(parentObject);
+			}
+		}
+
+		return result;
 	}
 
 	@Override
@@ -522,17 +549,7 @@
 		final Map<VElement, VDiagnostic> controlDiagnosticMap = new LinkedHashMap<VElement, VDiagnostic>();
 
 		for (final VElement control : vElementToSettingMap.keySet()) {
-
-			if (!controlDiagnosticMap.containsKey(control)) {
-				controlDiagnosticMap.put(control, VViewFactory.eINSTANCE.createDiagnostic());
-			}
-			for (final UniqueSetting uniqueSetting : vElementToSettingMap.get(control)) {
-				// TODO Performance
-				// controlDiagnosticMap.get(control).getDiagnostics()
-				// .removeAll(currentUpdates.get(uniqueSetting).getDiagnostics());
-				controlDiagnosticMap.get(control).getDiagnostics()
-					.addAll(currentUpdates.get(uniqueSetting).getDiagnostics());
-			}
+			updateControlDiagnostics(control, vElementToSettingMap, controlDiagnosticMap);
 
 			// add all diagnostics of control which are not in the currentUpdates
 			if (control.getDiagnostic() == null) {
@@ -559,27 +576,39 @@
 				if (!currentUpdates.containsKey(uniqueSetting2)) {
 					controlDiagnosticMap.get(control).getDiagnostics().add(diagnosticObject);
 				}
-
 			}
-
 		}
 
 		updateAndPropagate(controlDiagnosticMap);
+	}
 
+	private void updateControlDiagnostics(final VElement control,
+		final Map<VElement, Set<UniqueSetting>> vElementToSettingMap,
+		final Map<VElement, VDiagnostic> controlDiagnosticMap) {
+
+		if (!controlDiagnosticMap.containsKey(control)) {
+			controlDiagnosticMap.put(control, VViewFactory.eINSTANCE.createDiagnostic());
+		}
+
+		for (final UniqueSetting uniqueSetting : vElementToSettingMap.get(control)) {
+			final List<Diagnostic> diagnostics = currentUpdates.get(uniqueSetting);
+			if (!diagnostics.isEmpty()) {
+				controlDiagnosticMap.get(control).getDiagnostics().addAll(diagnostics);
+			}
+		}
 	}
 
 	private Map<VElement, Set<UniqueSetting>> prepareVElementToSettingMap() {
 		final Map<VElement, Set<UniqueSetting>> result = new LinkedHashMap<VElement, Set<UniqueSetting>>();
+		final Function<VElement, Set<UniqueSetting>> setFactory = __ -> new LinkedHashSet<>();
+
 		for (final UniqueSetting uniqueSetting : currentUpdates.keySet()) {
 			final Set<VElement> controls = controlMapper.getControlsFor(uniqueSetting);
-			if (controls == null) {
+			if (controls == null || controls.isEmpty()) {
 				continue;
 			}
 			for (final VElement control : controls) {
-				if (!result.containsKey(control)) {
-					result.put(control, new LinkedHashSet<UniqueSetting>());
-				}
-				result.get(control).add(uniqueSetting);
+				result.computeIfAbsent(control, setFactory).add(uniqueSetting);
 			}
 		}
 		return result;
@@ -590,11 +619,9 @@
 	}
 
 	private void updateAndPropagate(Map<VElement, VDiagnostic> controlDiagnosticMap) {
-		for (final VElement control : controlDiagnosticMap.keySet()) {
-
-			control.setDiagnostic(controlDiagnosticMap.get(control));
-
-			reevaluateToTop(control.eContainer(), controlDiagnosticMap);
+		for (final Map.Entry<VElement, VDiagnostic> next : controlDiagnosticMap.entrySet()) {
+			next.getKey().setDiagnostic(next.getValue());
+			reevaluateToTop(next.getKey().eContainer(), controlDiagnosticMap);
 		}
 	}
 
@@ -639,9 +666,7 @@
 			}
 			for (final EStructuralFeature feature : eObject.eClass().getEAllStructuralFeatures()) {
 				final UniqueSetting uniqueSetting = UniqueSetting.createSetting(eObject, feature);
-				if (!currentUpdates.containsKey(uniqueSetting)) {
-					currentUpdates.put(uniqueSetting, VViewFactory.eINSTANCE.createDiagnostic());
-				}
+				currentUpdates.computeIfAbsent(uniqueSetting, diagnosticListFactory);
 			}
 			analyzeDiagnostic(diagnostic);
 		} finally {
@@ -671,11 +696,7 @@
 			}
 			final Setting setting = internalEObject.eSetting(eStructuralFeature);
 			final UniqueSetting uniqueSetting = UniqueSetting.createSetting(setting);
-			if (!currentUpdates.containsKey(uniqueSetting)) {
-				currentUpdates.put(uniqueSetting, VViewFactory.eINSTANCE.createDiagnostic());
-			}
-			currentUpdates.get(uniqueSetting).getDiagnostics().add(diagnostic);
-
+			currentUpdates.computeIfAbsent(uniqueSetting, diagnosticListFactory).add(diagnostic);
 		} else {
 			for (final Diagnostic childDiagnostic : diagnostic.getChildren()) {
 				analyzeDiagnostic(childDiagnostic);
@@ -691,8 +712,8 @@
 	@Override
 	public void addValidationProvider(ValidationProvider validationProvider, boolean revalidate) {
 		validationService.addValidator(validationProvider);
-		if (revalidate) {
-			validate(getAllEObjectsToValidate());
+		if (revalidate && context != null) {
+			validate(getAllEObjectsToValidate(context));
 		}
 	}
 
@@ -704,8 +725,8 @@
 	@Override
 	public void removeValidationProvider(ValidationProvider validationProvider, boolean revalidate) {
 		validationService.removeValidator(validationProvider);
-		if (revalidate) {
-			validate(getAllEObjectsToValidate());
+		if (revalidate && context != null) {
+			validate(getAllEObjectsToValidate(context));
 		}
 	}
 
@@ -744,7 +765,12 @@
 
 	@Override
 	public void childContextAdded(VElement parentElement, EMFFormsViewContext childContext) {
-		validate(getAllEObjectsToValidate());
+		// We are getting this from a parent content that is a view-model context, so the
+		// child really ought to be one, also
+		if (childContext instanceof ViewModelContext) {
+			validate(getAllEObjectsToValidate((ViewModelContext) childContext));
+		}
+
 		childContext.registerViewChangeListener(viewChangeListener);
 	}
 
@@ -757,7 +783,7 @@
 	@Override
 	public void contextInitialised() {
 		initialized = true;
-		validate(getAllEObjectsToValidate());
+		validate(getAllEObjectsToValidate(context));
 	}
 
 	@Override
@@ -777,4 +803,5 @@
 		}
 		return null;
 	}
+
 }
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/META-INF/MANIFEST.MF
index bc10bb6..aba7c36 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.spi.vertical.model.provider.VerticalEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.vertical.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/pom.xml
index 7fad1f8..4bab285 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.vertical.model.edit</artifactId>
   <packaging>eclipse-plugin</packaging>
 
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.vertical.model/META-INF/MANIFEST.MF
index 892a5ab..a21544d 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.vertical.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.vertical.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.spi.vertical.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.vertical.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.vertical.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.vertical.model
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.vertical.model/pom.xml
index d9d83c9..469f853 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emf.ecp.view.vertical.model</artifactId>
   <packaging>eclipse-plugin</packaging>
 
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/META-INF/MANIFEST.MF
index 01a5a90..59a4024 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Vertical UI SWT
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.ui.swt
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.internal.vertical.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.vertical.swt;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.vertical.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.vertical.swt;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/verticalLayoutRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.vertical.ui.swt
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/pom.xml b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/pom.xml
index 7c342da..3f993be 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java
index 0c5a605..a71daa1 100644
--- a/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.view.vertical.ui.swt/src/org/eclipse/emf/ecp/view/spi/vertical/swt/VerticalLayoutSWTRenderer.java
@@ -21,7 +21,6 @@
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 
 /**
@@ -40,14 +39,13 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 * @since 1.6
 	 */
 	@Inject
 	public VerticalLayoutSWTRenderer(VVerticalLayout vElement, ViewModelContext viewContext,
 		ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 	}
 
 	private static final String CONTROL_COLUMN = "org_eclipse_emf_ecp_ui_layout_vertical"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/META-INF/MANIFEST.MF
index 294c613..e6b9bf9 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.viewproxy.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.internal.viewproxy.model.provider.ViewproxyEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.model.provider;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.viewproxy.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.model.provider;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.viewproxy.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.viewproxy.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/pom.xml b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/pom.xml
index 469a1a6..f247313 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/META-INF/MANIFEST.MF
index 64e89db..d4fd7d0 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.viewproxy.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.viewproxy.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.viewproxy.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.viewproxy.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.viewproxy.resolver;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.viewproxy.resolver;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.viewproxy.model
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/pom.xml b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/pom.xml
index 380481a..afbbce2 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/src/org/eclipse/emf/ecp/view/internal/viewproxy/resolver/ProxyResolverViewService.java b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/src/org/eclipse/emf/ecp/view/internal/viewproxy/resolver/ProxyResolverViewService.java
index 5738c77..9d31443 100644
--- a/bundles/org.eclipse.emf.ecp.view.viewproxy.model/src/org/eclipse/emf/ecp/view/internal/viewproxy/resolver/ProxyResolverViewService.java
+++ b/bundles/org.eclipse.emf.ecp.view.viewproxy.model/src/org/eclipse/emf/ecp/view/internal/viewproxy/resolver/ProxyResolverViewService.java
@@ -73,7 +73,10 @@
 	 */
 	@Override
 	public int getPriority() {
-		return -10;
+		// Must be lower than the LocalizationViewModelService's priority because otherwise labels of elements defined
+		// in the proxy view are not localized.
+		// Should be lower than the DmrToSegments service so that segments are generated for the loaded proxy views.
+		return -2000;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emf.ecp.view.workspace.migrator/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.view.workspace.migrator/META-INF/MANIFEST.MF
index ad92917..c5b978b 100644
--- a/bundles/org.eclipse.emf.ecp.view.workspace.migrator/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.view.workspace.migrator/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewModel Workspace Migrator
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.workspace.migrator;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.workspace.migrator;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.equinox.common;bundle-version="[3.6.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.workspace.migrator;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.equinox.common;bundle-version="[3.6.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.workspace.migrator
 Service-Component: OSGI-INF/workspaceMigrator.xml
diff --git a/bundles/org.eclipse.emf.ecp.view.workspace.migrator/pom.xml b/bundles/org.eclipse.emf.ecp.view.workspace.migrator/pom.xml
index b00f3b9..4878cc3 100644
--- a/bundles/org.eclipse.emf.ecp.view.workspace.migrator/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.view.workspace.migrator/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.workspace.migrator</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emf.ecp.workspace.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.workspace.core/META-INF/MANIFEST.MF
index 30f14c1..f53ff17 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.workspace.core/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Workspace Integration Core
 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.core;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.workspace.internal.core.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.workspace.internal.core;version="1.19.0";x-friends:="org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.ecp.ui.view.editor.controls"
+Export-Package: org.eclipse.emf.ecp.workspace.internal.core;version="1.20.0";x-friends:="org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.ecp.ui.view.editor.controls"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.11.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emf.ecp.workspace.core/pom.xml b/bundles/org.eclipse.emf.ecp.workspace.core/pom.xml
index 8a6993a..9760bde 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.core/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.workspace.core/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.workspace.core</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui.rap/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.workspace.ui.rap/META-INF/MANIFEST.MF
index 91598a3..ba06b1f 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.ui.rap/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.workspace.ui.rap/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Workspace Integration UI RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.ui.rap;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.workspace.internal.ui.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.workspace.core;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.rap.filedialog;bundle-version="[3.1.2,4.0.0)",
  org.eclipse.rap.rwt;bundle-version="[3.1.2,4.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.11.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.handlers;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0"
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.handlers;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.workspace.ui.rap
diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui.rap/pom.xml b/bundles/org.eclipse.emf.ecp.workspace.ui.rap/pom.xml
index cb257ba..d64310e 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.ui.rap/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.workspace.ui.rap/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.workspace.ui.rap</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.ecp.workspace.ui/META-INF/MANIFEST.MF
index 8ccad00..987576a 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.ecp.workspace.ui/META-INF/MANIFEST.MF
@@ -2,40 +2,40 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Workspace Integration UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.workspace.internal.ui.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.workspace.internal.ui;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.workspace.core;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.11.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.actions;version="0.0.0",
-  org.eclipse.ui.dialogs;version="0.0.0",
-  org.eclipse.ui.handlers;version="0.0.0",
-  org.eclipse.ui.internal.ide;version="0.0.0",
-  org.eclipse.ui.internal.ide.misc;version="0.0.0",
-  org.eclipse.ui.model;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0",
-  org.eclipse.ui.wizards.newresource;version="0.0.0"
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.actions;version="0.0.0",
+ org.eclipse.ui.dialogs;version="0.0.0",
+ org.eclipse.ui.handlers;version="0.0.0",
+ org.eclipse.ui.internal.ide;version="0.0.0",
+ org.eclipse.ui.internal.ide.misc;version="0.0.0",
+ org.eclipse.ui.model;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0",
+ org.eclipse.ui.wizards.newresource;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.workspace.ui
diff --git a/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml b/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml
index 47969e7..8b9409e 100644
--- a/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml
+++ b/bundles/org.eclipse.emf.ecp.workspace.ui/pom.xml
@@ -5,11 +5,11 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.workspace.ui</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.rap.edit.ui.minimal/META-INF/MANIFEST.MF b/bundles/org.eclipse.emf.rap.edit.ui.minimal/META-INF/MANIFEST.MF
index e56c449..b7c9cc9 100644
--- a/bundles/org.eclipse.emf.rap.edit.ui.minimal/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emf.rap.edit.ui.minimal/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Minimal RAP EMF Edit UI
 Bundle-SymbolicName: org.eclipse.emf.rap.edit.ui.minimal
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.edit.ui.provider.Activator
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.edit.ui.dnd;version="2.10.0",
@@ -11,6 +11,7 @@
  org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
  org.eclipse.jface.viewers;version="0.0.0",
  org.eclipse.swt;version="0.0.0",
@@ -18,5 +19,4 @@
  org.eclipse.swt.events,
  org.eclipse.swt.graphics;version="0.0.0",
  org.eclipse.swt.widgets;version="0.0.0"
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.rap.edit.ui.minimal
diff --git a/bundles/org.eclipse.emf.rap.edit.ui.minimal/pom.xml b/bundles/org.eclipse.emf.rap.edit.ui.minimal/pom.xml
index 4449ef5..b9e5ea8 100644
--- a/bundles/org.eclipse.emf.rap.edit.ui.minimal/pom.xml
+++ b/bundles/org.eclipse.emf.rap.edit.ui.minimal/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.rap.edit.ui.minimal</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.common.prevalidation/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.common.prevalidation/META-INF/MANIFEST.MF
index 8493385..04a46d8 100644
--- a/bundles/org.eclipse.emfforms.common.prevalidation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.common.prevalidation/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Pre-Set Validation
 Bundle-SymbolicName: org.eclipse.emfforms.common.prevalidation
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.common.prevalidation;version="1.19.0"
+Export-Package: org.eclipse.emfforms.internal.common.prevalidation;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/PreSetValidationServiceImpl.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="1.8.0",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.common.prevalidation
diff --git a/bundles/org.eclipse.emfforms.common.prevalidation/pom.xml b/bundles/org.eclipse.emfforms.common.prevalidation/pom.xml
index d6eca4f..db33ad3 100644
--- a/bundles/org.eclipse.emfforms.common.prevalidation/pom.xml
+++ b/bundles/org.eclipse.emfforms.common.prevalidation/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.common.prevalidation</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.common.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.common.validation/META-INF/MANIFEST.MF
index e262fb4..b200a28 100644
--- a/bundles/org.eclipse.emfforms.common.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.common.validation/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Validation
 Bundle-SymbolicName: org.eclipse.emfforms.common.validation;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.validation,org.eclipse.emf.ecp.ide.migration",
-  org.eclipse.emfforms.common.spi.validation;version="1.19.0",
-  org.eclipse.emfforms.common.spi.validation.exception;version="1.19.0",
-  org.eclipse.emfforms.common.spi.validation.filter;version="1.19.0"
+Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.validation,org.eclipse.emf.ecp.ide.migration",
+ org.eclipse.emfforms.common.spi.validation;version="1.20.0",
+ org.eclipse.emfforms.common.spi.validation.exception;version="1.20.0",
+ org.eclipse.emfforms.common.spi.validation.filter;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.common.validation
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.common.validation/pom.xml b/bundles/org.eclipse.emfforms.common.validation/pom.xml
index 226513d..b55c0a8 100644
--- a/bundles/org.eclipse.emfforms.common.validation/pom.xml
+++ b/bundles/org.eclipse.emfforms.common.validation/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.common.validation</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emfforms.common.validation/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl.java b/bundles/org.eclipse.emfforms.common.validation/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl.java
index 312ac63..c455b75 100644
--- a/bundles/org.eclipse.emfforms.common.validation/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl.java
+++ b/bundles/org.eclipse.emfforms.common.validation/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl.java
@@ -29,6 +29,7 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecore.util.Diagnostician;
 import org.eclipse.emfforms.common.Optional;
 import org.eclipse.emfforms.common.spi.validation.ValidationResultListener;
@@ -366,13 +367,18 @@
 			Map<Object, Object> context) {
 			EValidator eValidator;
 			EClass eType = eClass;
-			while ((eValidator = eValidatorRegistry.getEValidator(eType.getEPackage())) == null) {
-				final List<EClass> eSuperTypes = eType.getESuperTypes();
-				if (eSuperTypes.isEmpty()) {
-					eValidator = eValidatorRegistry.getEValidator(null);
-					break;
+			// short cut dynamic emf to avoid ClassCastExceptions in custom validators
+			if (eObject instanceof DynamicEObjectImpl) {
+				eValidator = eValidatorRegistry.getEValidator(null);
+			} else {
+				while ((eValidator = eValidatorRegistry.getEValidator(eType.getEPackage())) == null) {
+					final List<EClass> eSuperTypes = eType.getESuperTypes();
+					if (eSuperTypes.isEmpty()) {
+						eValidator = eValidatorRegistry.getEValidator(null);
+						break;
+					}
+					eType = eSuperTypes.get(0);
 				}
-				eType = eSuperTypes.get(0);
 			}
 			return doValidate(eValidator, eType, eObject, diagnostics, context);
 		}
diff --git a/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
index 5d8c27c..067eeff 100644
--- a/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.common/META-INF/MANIFEST.MF
@@ -2,20 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Common
 Bundle-SymbolicName: org.eclipse.emfforms.common
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.common;version="1.19.0",
- org.eclipse.emfforms.internal.common;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.common.converter;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.common.report;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.common.converter;version="1.19.0",
- org.eclipse.emfforms.spi.common.locale;version="1.19.0",
- org.eclipse.emfforms.spi.common.report;version="1.19.0",
- org.eclipse.emfforms.spi.common.validation;version="1.19.0"
+Export-Package: org.eclipse.emfforms.common;version="1.20.0",
+ org.eclipse.emfforms.internal.common;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.common.converter;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.common.report;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.common.converter;version="1.20.0",
+ org.eclipse.emfforms.spi.common.locale;version="1.20.0",
+ org.eclipse.emfforms.spi.common.report;version="1.20.0",
+ org.eclipse.emfforms.spi.common.sort;version="1.20.0",
+ org.eclipse.emfforms.spi.common.validation;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.osgi.framework;version="1.8.0",
- org.osgi.service.component.annotations;version="[1.1.0,2.0.0)";resolution:=optional
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.common.report.ReportServiceImpl.xml,OSGI-INF/org.eclipse.emfforms.internal.common.converter.EStructuralFeatureValueConverterServiceImpl.xml,OSGI-INF/org.eclipse.emfforms.internal.common.converter.DefaultEAttributeValueConverterImpl.xml
 Bundle-ActivationPolicy: lazy
+Import-Package: org.osgi.framework;version="1.8.0",
+ org.osgi.service.component.annotations;version="[1.1.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.common
diff --git a/bundles/org.eclipse.emfforms.common/pom.xml b/bundles/org.eclipse.emfforms.common/pom.xml
index 82a9c89..1cc7d3a 100644
--- a/bundles/org.eclipse.emfforms.common/pom.xml
+++ b/bundles/org.eclipse.emfforms.common/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.common</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/common/TriFunction.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/common/TriFunction.java
new file mode 100644
index 0000000..23e8b22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/common/TriFunction.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.common;
+
+import java.util.function.Function;
+
+/**
+ * Represents a function that accepts three arguments and produces a result.
+ * This is the three-arity specialization of {@link Function}.
+ *
+ * <p>
+ * This is a functional interface whose functional method is {@link #apply(Object, Object, Object)}.
+ *
+ * <p>
+ * This interface was introduced because Java 8 only provides {@link java.util.function.Function Function} and
+ * {@link java.util.function.BiFunction BiFunction}.
+ *
+ * @param <R> the type of the result of the function
+ * @param <T> the type of the first argument to the function
+ * @param <U> the type of the second argument to the function
+ * @param <V> the type of the third argument to the function
+ *
+ * @author Lucas Koehler
+ * @since 1.20
+ *
+ */
+@FunctionalInterface
+public interface TriFunction<R, T, U, V> {
+
+	/**
+	 * Applies this function to the given arguments.
+	 *
+	 * @param t the first function argument
+	 * @param u the second function argument
+	 * @param v the third function argument
+	 * @return the function result
+	 */
+	R apply(T t, U u, V v);
+}
diff --git a/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/sort/NumberAwareStringComparator.java b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/sort/NumberAwareStringComparator.java
new file mode 100644
index 0000000..1e40d21
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.common/src/org/eclipse/emfforms/spi/common/sort/NumberAwareStringComparator.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.common.sort;
+
+import java.math.BigInteger;
+import java.util.Comparator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * A comparator for strings that compares numbers which are part of compared string as numbers and not as strings.
+ * This allows to sort strings that are a mixture of numbers and text (e.g. house numbers) in an intuitive fashion.
+ * For instance, plain string sorting sorts 200A greater than 1000A. This comparator sorts 1000A greater than 200A.
+ *
+ * @author Lucas Koehler
+ * @since 1.20
+ *
+ */
+public final class NumberAwareStringComparator implements Comparator<String> {
+
+	// First group matches zero or more non-digits. Second group matches zero or more digits
+	private static final Pattern PATTERN = Pattern.compile("(\\D*)(\\d*)"); //$NON-NLS-1$
+	private static NumberAwareStringComparator instance;
+
+	/**
+	 * @return the static {@link NumberAwareStringComparator} instance.
+	 */
+	public static NumberAwareStringComparator getInstance() {
+		if (instance == null) {
+			instance = new NumberAwareStringComparator();
+		}
+		return instance;
+	}
+
+	private NumberAwareStringComparator() {
+		// Static instance should be used.
+	}
+
+	@Override
+	public int compare(String o1, String o2) {
+		final Matcher matcher1 = PATTERN.matcher(o1);
+		final Matcher matcher2 = PATTERN.matcher(o2);
+
+		// For our pattern Matcher::find only returns false if the end of the string was reached.
+		while (matcher1.find() && matcher2.find()) {
+			// group(1) gets the results matched by \\D* (non-digits)
+			final int wordCompare = matcher1.group(1).compareToIgnoreCase(matcher2.group(1));
+			if (wordCompare != 0) {
+				return wordCompare;
+			}
+
+			// group(2) gets the results matched by \\d* (digits)
+			final String numberString1 = matcher1.group(2);
+			final String numberString2 = matcher2.group(2);
+
+			if (numberString1.isEmpty()) {
+				// Empty string is smaller than any other string
+				return numberString2.isEmpty() ? 0 : -1;
+			} else if (numberString2.isEmpty()) {
+				return 1;
+			}
+
+			final BigInteger number1 = new BigInteger(numberString1);
+			final BigInteger number2 = new BigInteger(numberString2);
+			final int numberCompare = number1.compareTo(number2);
+			if (numberCompare != 0) {
+				return numberCompare;
+			}
+		}
+
+		if (matcher1.hitEnd() && matcher2.hitEnd()) {
+			return 0;
+		}
+		return matcher1.hitEnd() ? -1 : 1;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.core.bazaar/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.bazaar/META-INF/MANIFEST.MF
index 1848ae7..340918c 100644
--- a/bundles/org.eclipse.emfforms.core.bazaar/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.bazaar/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Bazaar
 Bundle-SymbolicName: org.eclipse.emfforms.core.bazaar
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
+Export-Package: org.eclipse.emfforms.bazaar;version="1.20.0",
+ org.eclipse.emfforms.bazaar.internal;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.bazaar;version="1.20.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emfforms.core.bazaar
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.e4.core.contexts;version="0.0.0",
  org.eclipse.e4.core.di;version="0.0.0",
  org.eclipse.e4.core.di.annotations;version="0.0.0"
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emfforms.bazaar;version="1.19.0",
- org.eclipse.emfforms.bazaar.internal;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.bazaar;version="1.19.0"
-Automatic-Module-Name: org.eclipse.emfforms.core.bazaar
diff --git a/bundles/org.eclipse.emfforms.core.bazaar/pom.xml b/bundles/org.eclipse.emfforms.core.bazaar/pom.xml
index e021640..2376a44 100644
--- a/bundles/org.eclipse.emfforms.core.bazaar/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.bazaar/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.bazaar</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/META-INF/MANIFEST.MF
index 439766c..c6acd0c 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Featurepath Databinding Services
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.featurepath
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/featurePathDomainModelReferenceConverterService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.featurepath
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/pom.xml b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/pom.xml
index 61e83b1..338c74e 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.featurepath/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.databinding.index/META-INF/MANIFEST.MF
index eccd94b..414f987 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.index/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Index DMR Converter
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.index
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding.index;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.index;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/indexDomainModelReferenceConverter.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.1.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.1.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.index
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.index/pom.xml b/bundles/org.eclipse.emfforms.core.services.databinding.index/pom.xml
index d9306e6..ac6bb6f 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.index/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.index/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emfforms</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/META-INF/MANIFEST.MF
index 25da792..3d88ab0 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Keyattribute DMR Converter
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.keyattribute
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/KeyAttributeDomainModelReferenceConverter.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.keyattribute
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/pom.xml b/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/pom.xml
index 92389e3..95d6e3b 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.keyattribute/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.databinding.keyattribute</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/META-INF/MANIFEST.MF
index b767545..bd7394e 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Converter
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.mapping
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.19.0,1.20.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/mappingDomainModelReferenceConverter.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.1.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.1.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.mapping
diff --git a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/pom.xml b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/pom.xml
index cbe7424..dc238e5 100644
--- a/bundles/org.eclipse.emfforms.core.services.databinding.mapping/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.databinding.mapping/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emfforms</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.datatemplate/META-INF/MANIFEST.MF
index f23aa05..c565991 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/META-INF/MANIFEST.MF
@@ -2,29 +2,29 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms DataTemplate Service
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.datatemplate;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.core.services.datatemplate;version="1.19.0",
-  org.eclipse.emfforms.internal.core.services.datatemplate;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.datatemplate;version="1.20.0",
+ org.eclipse.emfforms.internal.core.services.datatemplate;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.datatemplate.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.bazaar;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/XmiTemplateProvider.xml,OSGI-INF/TemplateCreateNewModelElementStrategyProvider.xml,OSGI-INF/BlankTemplateProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.jface.wizard;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.jface.wizard;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.datatemplate
diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/pom.xml b/bundles/org.eclipse.emfforms.core.services.datatemplate/pom.xml
index fe639c7..5ea5c16 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.datatemplate</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java
index 3bb849b..254e768 100644
--- a/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java
+++ b/bundles/org.eclipse.emfforms.core.services.datatemplate/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,7 +8,7 @@
  *
  * Contributors:
  * lucas - initial API and implementation
- * Christian W. Damus - bug 529138
+ * Christian W. Damus - bugs 529138, 543461
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.datatemplate;
 
@@ -16,7 +16,9 @@
 import static org.osgi.service.component.annotations.ReferencePolicy.DYNAMIC;
 
 import java.util.LinkedHashSet;
+import java.util.Objects;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
@@ -185,9 +187,14 @@
 	 *
 	 * @author Lucas Koehler
 	 */
-	private class Strategy implements CreateNewModelElementStrategy {
+	class Strategy implements CreateNewModelElementStrategy {
 		private final EClassSelectionStrategy classSelectionStrategy;
 
+		/**
+		 * Initializes me with a strategy for selecting classes permitted in the particular form context.
+		 *
+		 * @param classSelectionStrategy my class selection strategy
+		 */
 		Strategy(final EClassSelectionStrategy classSelectionStrategy) {
 			super();
 			this.classSelectionStrategy = classSelectionStrategy;
@@ -214,6 +221,12 @@
 
 			Template selected = availableTemplates.iterator().next();
 			if (availableTemplates.size() > 1) {
+				// Don't show classes for which we don't have templates (bug 543461)
+				final Set<EClass> templateClasses = availableTemplates.stream()
+					.map(Template::getInstance).filter(Objects::nonNull).map(EObject::eClass)
+					.collect(Collectors.toSet());
+				subClasses.retainAll(templateClasses);
+
 				final Optional<Template> selectedElement = showSelectModelInstancesDialog(subClasses,
 					availableTemplates);
 
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.default/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.domainexpander.default/META-INF/MANIFEST.MF
index 75ae8be..1a0ca06 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.default/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.default/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default Domain Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.default
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsDomainExpanderDefaultHeuristic.xml,OSGI-INF/EMFFormsDomainExpanderImpl.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.default/pom.xml b/bundles/org.eclipse.emfforms.core.services.domainexpander.default/pom.xml
index 2fbee0e..597eaeb 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.default/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.default/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.domainexpander.default</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.index/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.domainexpander.index/META-INF/MANIFEST.MF
index 8eec6dd..1a9ff95 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.index/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.index/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Index DMR Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.index
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsIndexDMRExpander.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.index
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.index/pom.xml b/bundles/org.eclipse.emfforms.core.services.domainexpander.index/pom.xml
index 1b5dcd8..9815457 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.index/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.index/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.domainexpander.index</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/META-INF/MANIFEST.MF
index 78c6088..3f987d1 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: KeyAttribute DMR Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.keyattribute
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsKeyAttributeDMRExpander.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.keyattribute
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/pom.xml b/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/pom.xml
index 51f9c7a..d9d5969 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.keyattribute/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.domainexpander.keyattribute</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/META-INF/MANIFEST.MF
index a344a42..28f043b 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.mapping
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsMappingDMRExpander.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.mapping
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/pom.xml b/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/pom.xml
index 4f7b57f..3315a7a 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.mapping/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.domainexpander.mapping</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.table/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.domainexpander.table/META-INF/MANIFEST.MF
index aaefb4a..758c27c 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.table/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.table/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms TableControl Domain Expander
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.table
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.table;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.domainexpander.table;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsTableDMRExpander.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.table
diff --git a/bundles/org.eclipse.emfforms.core.services.domainexpander.table/pom.xml b/bundles/org.eclipse.emfforms.core.services.domainexpander.table/pom.xml
index a0f0c90..c13fd7e 100644
--- a/bundles/org.eclipse.emfforms.core.services.domainexpander.table/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.domainexpander.table/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.domainexpander.table</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.editsupport/META-INF/MANIFEST.MF
index 3d7a25e..2961a51 100644
--- a/bundles/org.eclipse.emfforms.core.services.editsupport/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Edit Support
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.editsupport
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.editsupport;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.core.services.editsupport;version="1.19.0"
+Export-Package: org.eclipse.emfforms.internal.core.services.editsupport;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.editsupport;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/emfFormsEditSupport.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.localization;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emfforms.core.services.editsupport
diff --git a/bundles/org.eclipse.emfforms.core.services.editsupport/pom.xml b/bundles/org.eclipse.emfforms.core.services.editsupport/pom.xml
index 12ecc4c..9a5add6 100644
--- a/bundles/org.eclipse.emfforms.core.services.editsupport/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.editsupport/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,7 +15,7 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emfforms</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   

   <properties>

   	<jacoco.percentage.instruction>0.4</jacoco.percentage.instruction>

diff --git a/bundles/org.eclipse.emfforms.core.services.emf/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.emf/META-INF/MANIFEST.MF
index 5bf59f1..06a54fd 100644
--- a/bundles/org.eclipse.emfforms.core.services.emf/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.emf/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services EMF
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.emf
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.databinding;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.label;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.databinding;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.label;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/emfLabelProvider.xml, OSGI-INF/emfLabelProviderDefault.xml, OSGI-INF/databindingService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.databinding.observable;version="0.0.0",
-  org.eclipse.core.databinding.observable.list;version="0.0.0",
-  org.eclipse.core.databinding.observable.value;version="0.0.0",
-  org.eclipse.core.runtime;version="0.0.0",
-  org.eclipse.emf.databinding;version="0.0.0",
-  org.eclipse.emfforms.common;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.locale;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.emfspecificservice;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.label;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.localization;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.6.0,2.0.0)",
-  org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
+ org.eclipse.core.databinding.observable.list;version="0.0.0",
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.core.runtime;version="0.0.0",
+ org.eclipse.emf.databinding;version="0.0.0",
+ org.eclipse.emfforms.common;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.locale;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.emfspecificservice;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.6.0,2.0.0)",
+ org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.emf
diff --git a/bundles/org.eclipse.emfforms.core.services.emf/pom.xml b/bundles/org.eclipse.emfforms.core.services.emf/pom.xml
index bcc2f1c..4654a01 100644
--- a/bundles/org.eclipse.emfforms.core.services.emf/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.emf/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.emf</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/META-INF/MANIFEST.MF
index 9e0dd8d..4179238 100644
--- a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/META-INF/MANIFEST.MF
@@ -2,12 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms EMF Specific Service
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.emfspecificservice
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.emfspecificservice;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.core.services.emfspecificservice;version="1.19.0"
-Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.emfspecificservice;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.emfspecificservice;version="1.20.0"
+Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emfforms.core.services.emfspecificservice
 Service-Component: OSGI-INF/emfSpecificService.xml
 Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.emfforms.core.services.emfspecificservice
diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml
index 9bada7b..882cfc6 100644
--- a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/internal/core/services/emfspecificservice/EMFSpecificServiceImpl.java b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/internal/core/services/emfspecificservice/EMFSpecificServiceImpl.java
index eaf1b1a..6617788 100644
--- a/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/internal/core/services/emfspecificservice/EMFSpecificServiceImpl.java
+++ b/bundles/org.eclipse.emfforms.core.services.emfspecificservice/src/org/eclipse/emfforms/internal/core/services/emfspecificservice/EMFSpecificServiceImpl.java
@@ -14,13 +14,13 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
 import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService;
 
 /**
@@ -61,11 +61,6 @@
 	// return new AdapterFactoryItemDelegator(getComposedAdapterFactory());
 	// }
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see EMFSpecificService#getIItemPropertyDescriptor(EObject, EStructuralFeature)
-	 */
 	@Override
 	public IItemPropertyDescriptor getIItemPropertyDescriptor(EObject eObject, EStructuralFeature eStructuralFeature) {
 		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(eObject);
@@ -76,9 +71,7 @@
 		} else {
 			final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
 				new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
-				// new CustomReflectiveItemProvider(), <-- move to common bundle,
-				// then remove the ReflectiveItemProviderAdapterFactory
-				new ReflectiveItemProviderAdapterFactory()
+				new CustomReflectiveItemProviderAdapterFactory()
 			});
 			itemDelegator = getAdapterFactoryItemDelegator(composedAdapterFactory);
 			composedAdapterFactory.dispose();
@@ -91,11 +84,6 @@
 		return new AdapterFactoryItemDelegator(adapterFactory);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.core.services.emfspecificservice.EMFSpecificService#getIItemPropertySource(org.eclipse.emf.ecore.EObject)
-	 */
 	@Override
 	public IItemPropertySource getIItemPropertySource(EObject eObject) {
 		final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(eObject);
@@ -106,9 +94,7 @@
 		} else {
 			final ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
 				new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE),
-				// new CustomReflectiveItemProvider(), <-- move to common bundle,
-				// then remove the ReflectiveItemProviderAdapterFactory
-				new ReflectiveItemProviderAdapterFactory()
+				new CustomReflectiveItemProviderAdapterFactory()
 			});
 			propertySource = (IItemPropertySource) composedAdapterFactory.adapt(eObject, IItemPropertySource.class);
 			composedAdapterFactory.dispose();
diff --git a/bundles/org.eclipse.emfforms.core.services.legacy/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.legacy/META-INF/MANIFEST.MF
index e9110e3..2f256f8 100644
--- a/bundles/org.eclipse.emfforms.core.services.legacy/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.legacy/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services Legacy
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.legacy;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.legacy;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.core.services.legacy;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.core.services.legacy.EMFFormsLegacyServicesManagerImpl.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.view.spi.context;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.spi.model;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="[1.1.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emf.ecp.view.spi.context;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.spi.model;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="[1.1.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.legacy
diff --git a/bundles/org.eclipse.emfforms.core.services.legacy/pom.xml b/bundles/org.eclipse.emfforms.core.services.legacy/pom.xml
index 3524542..c85652c 100644
--- a/bundles/org.eclipse.emfforms.core.services.legacy/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.legacy/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.locale.default/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.locale.default/META-INF/MANIFEST.MF
index f7617f6..e4a457f 100644
--- a/bundles/org.eclipse.emfforms.core.services.locale.default/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Default Locale Provider
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.locale.default
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.locale.defaultlocale;version="1.19.0"
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.locale.defaultlocale;version="1.20.0"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/defaultLocalizationService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emfforms.core.services.locale.default
diff --git a/bundles/org.eclipse.emfforms.core.services.locale.default/pom.xml b/bundles/org.eclipse.emfforms.core.services.locale.default/pom.xml
index 62ed107..fd56d3f 100644
--- a/bundles/org.eclipse.emfforms.core.services.locale.default/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.locale.default/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.locale.default</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/META-INF/MANIFEST.MF
index c5928bc..a32b778 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Mapping Provider Default Heuristic
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.mappingprovider.default
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.core.services.mappingprovider.defaultheuristic;version="1.7.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsMappingProviderDefaultHeuristic.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="0.0.0"
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emfforms.core.services.mappingprovider.default
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/pom.xml b/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/pom.xml
index cc4c6fa..11a49fa 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.default/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.mappingprovider.default</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/META-INF/MANIFEST.MF
index 579dec3..1836712 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Table Panel
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.mappingprovider.table.panel
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.emf.ecp.view.spi.provider;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Service-Component: OSGI-INF/EMFFormsMappingProviderTable.xml
 Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emf.ecp.view.spi.provider;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.mappingprovider.table.panel
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/pom.xml b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/pom.xml
index 6de0e63..9c72987 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table.panel/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.mappingprovider.table.panel</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/META-INF/MANIFEST.MF
index e9abe28..f6d8ec6 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Mapping Provider Table Control
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.mappingprovider.table
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.core.services.mappingprovider.table;version="1.7.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsMappingProviderTable.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.view.spi.provider;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emf.ecp.view.spi.provider;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.mappingprovider.table
diff --git a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/pom.xml b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/pom.xml
index 5a74923..114bbe4 100644
--- a/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.mappingprovider.table/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.mappingprovider.table</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.featurepath/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/META-INF/MANIFEST.MF
index 44e2cfe..d4a5912 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.featurepath/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/META-INF/MANIFEST.MF
@@ -2,20 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Core Services for Featurepath Segments
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.featurepath
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/FeatureSegmentExpander.xml,
- OSGI-INF/FeatureSegmentConverter.xml,
- OSGI-INF/FeatureSegmentStructuralChangeTester.xml,
- OSGI-INF/FeaturePathDmrSegmentGenerator.xml
-Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.segments;bundle-version="[1.19.0,1.20.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.20.0";x-friends:="org.eclipse.emfforms.core.services.segments.multi"
+Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)"
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.19.0";x-friends:="org.eclipse.emfforms.core.services.segments.multi"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Service-Component: OSGI-INF/FeatureSegmentExpander.xml,OSGI-INF/FeatureSegmentConverter.xml,OSGI-INF/FeatureSegmentStructuralChangeTester.xml,OSGI-INF/FeaturePathDmrSegmentGenerator.xml
+Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.featurepath
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.featurepath/pom.xml b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/pom.xml
index 7152ae4..ec6dbd0 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.featurepath/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.segments.featurepath/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments.index/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.segments.index/META-INF/MANIFEST.MF
index c10fe1a..67842ab 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.index/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.segments.index/META-INF/MANIFEST.MF
@@ -2,25 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Core Services for Index Segments
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.index
-Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.index
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/IndexSegmentConverter.xml,
- OSGI-INF/IndexSegmentExpander.xml,
- OSGI-INF/IndexSegmentStructuralChangeTester.xml,
- OSGI-INF/IndexDmrSegmentGenerator.xml
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.index;version="1.20.0";x-friends:="org.eclipse.emfforms.core.services.databinding.index"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.segments;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.index;version="1.19.0";x-friends:="org.eclipse.emfforms.core.services.databinding.index"
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Service-Component: OSGI-INF/IndexSegmentConverter.xml,OSGI-INF/IndexSegmentExpander.xml,OSGI-INF/IndexSegmentStructuralChangeTester.xml,OSGI-INF/IndexDmrSegmentGenerator.xml
+Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
+Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.index
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.index/pom.xml b/bundles/org.eclipse.emfforms.core.services.segments.index/pom.xml
index 2b621ee..634e77c 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.index/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.segments.index/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments.mapping/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.segments.mapping/META-INF/MANIFEST.MF
index b95ba46..ac17b27 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.mapping/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.segments.mapping/META-INF/MANIFEST.MF
@@ -2,24 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Mapping Segment Services
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.mapping
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.mapping
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.19.0";x-friends:="org.eclipse.emfforms.core.services.databinding.mapping"
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.20.0";x-friends:="org.eclipse.emfforms.core.services.databinding.mapping"
 Require-Bundle: org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
- org.eclipse.emfforms.core.services.segments;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)"
-Service-Component: OSGI-INF/MappingSegmentConverter.xml,
- OSGI-INF/MappingSegmentExpander.xml,
- OSGI-INF/MappingSegmentStructuralChangeTester.xml,
- OSGI-INF/MappingDmrSegmentGenerator.xml
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Service-Component: OSGI-INF/MappingSegmentConverter.xml,OSGI-INF/MappingSegmentExpander.xml,OSGI-INF/MappingSegmentStructuralChangeTester.xml,OSGI-INF/MappingDmrSegmentGenerator.xml
+Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="0.0.0",
  org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
+Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.mapping
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.mapping/pom.xml b/bundles/org.eclipse.emfforms.core.services.segments.mapping/pom.xml
index 775b63f..96ca8b8 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.mapping/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.segments.mapping/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments.multi/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.segments.multi/META-INF/MANIFEST.MF
index 2a2f1bc..41af5fc 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.multi/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.segments.multi/META-INF/MANIFEST.MF
@@ -2,24 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Multi Segment Services
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.multi
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/EMFFormsMappingProviderMulti.xml,
- OSGI-INF/MultiSegmentConverter.xml,
- OSGI-INF/MultiSegmentExpander.xml,
- OSGI-INF/TableDmrSegmentGenerator.xml
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.19.0,1.20.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.segments.multi;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.core.runtime;bundle-version="3.13.0",
- org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.emfforms.core.services.segments;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.core.services.segments.multi;version="1.19.0";x-internal:=true
+ org.eclipse.emfforms.core.services.segments;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Service-Component: OSGI-INF/EMFFormsMappingProviderMulti.xml,OSGI-INF/MultiSegmentConverter.xml,OSGI-INF/MultiSegmentExpander.xml,OSGI-INF/TableDmrSegmentGenerator.xml
+Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.multi
diff --git a/bundles/org.eclipse.emfforms.core.services.segments.multi/pom.xml b/bundles/org.eclipse.emfforms.core.services.segments.multi/pom.xml
index cc07c72..65ea8fb 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments.multi/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.segments.multi/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/bundles/org.eclipse.emfforms.core.services.segments/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.segments/META-INF/MANIFEST.MF
index 3efc767..8372d0a 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.segments/META-INF/MANIFEST.MF
@@ -2,16 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Services for DMR Segments
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
+Export-Package: org.eclipse.emfforms.internal.core.services.segments;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.segments;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)"
-Service-Component: OSGI-INF/SegmentGeneratorService.xml,
- OSGI-INF/DmrToSegmentsViewServiceFactory.xml
-Export-Package: org.eclipse.emfforms.internal.core.services.segments;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.core.services.segments;version="1.19.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Service-Component: OSGI-INF/SegmentGeneratorService.xml,OSGI-INF/DmrToSegmentsViewServiceFactory.xml
+Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.segments
diff --git a/bundles/org.eclipse.emfforms.core.services.segments/pom.xml b/bundles/org.eclipse.emfforms.core.services.segments/pom.xml
index b4bb168..07654ff 100644
--- a/bundles/org.eclipse.emfforms.core.services.segments/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.segments/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.segments</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.default/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.structuralchange.default/META-INF/MANIFEST.MF
index 7a1d50c..5549a32 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.default/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.default/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Structural Change Tester Default Heuristic
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.default
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.defaultheuristic;version="1.7.0";x-friends:="org.eclipse.emfforms.core.services.structuralchange.table"
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/StructuralChangeTesterDefault.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.default/pom.xml b/bundles/org.eclipse.emfforms.core.services.structuralchange.default/pom.xml
index 3bc05d5..09352ca 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.default/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.default/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.structuralchange.default</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.index/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.structuralchange.index/META-INF/MANIFEST.MF
index 6a7317c..2f6dd0f 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.index/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.index/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms StructuralChange Index
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.index
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.index;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.index;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.core.services.structuralchange.index.StructuralChangeTesterIndex.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.common.spi.asserts;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emf.ecp.common.spi.asserts;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.structuralchange.index
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.index/pom.xml b/bundles/org.eclipse.emfforms.core.services.structuralchange.index/pom.xml
index 3f06de8..2c83482 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.index/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.index/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.structuralchange.index</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/META-INF/MANIFEST.MF
index 9095884..9ba9bff 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: KeyAttribute Structural Change Tester
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.keyattribute
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/StructuralChangeTesterKeyAttribute.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.structuralchange.keyattribute
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/pom.xml b/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/pom.xml
index b79c960..4932cbb 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.keyattribute/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.structuralchange.keyattribute</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/META-INF/MANIFEST.MF
index 79a55bb..83fc161 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms StructuralChange Mapping
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.mapping
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.mapping;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.mapping;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.core.services.structuralchange.mapping.StructuralChangeTesterMapping.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.common.spi.asserts;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emf.ecp.common.spi.asserts;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.structuralchange.mapping
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/pom.xml b/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/pom.xml
index a034575..732a120 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.mapping/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.structuralchange.mapping</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.table/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.structuralchange.table/META-INF/MANIFEST.MF
index 0421f71..bc88833 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.table/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.table/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Structural Change Tester Table
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.table
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange.table;version="1.7.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/StructuralChangeTesterTable.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services.structuralchange.table
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange.table/pom.xml b/bundles/org.eclipse.emfforms.core.services.structuralchange.table/pom.xml
index 77f533b..f34a4ab 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange.table/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange.table/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.structuralchange.table</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services.structuralchange/META-INF/MANIFEST.MF
index ae85d12..a30ce58 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Structural Change Tester
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.core.services.structuralchange;version="1.7.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/EMFFormsStructuralChangeTesterImpl.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.core.services.structuralchange/pom.xml b/bundles/org.eclipse.emfforms.core.services.structuralchange/pom.xml
index 2e69956..9cb1dd5 100644
--- a/bundles/org.eclipse.emfforms.core.services.structuralchange/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services.structuralchange/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services.structuralchange</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.core.services/META-INF/MANIFEST.MF
index bc06aa5..bfa8868 100644
--- a/bundles/org.eclipse.emfforms.core.services/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.core.services/META-INF/MANIFEST.MF
@@ -2,34 +2,34 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services
 Bundle-SymbolicName: org.eclipse.emfforms.core.services
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.core.services.controlmapper;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.mappingprovider;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.scoped;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.core.services.controlmapper;version="1.19.0",
-  org.eclipse.emfforms.spi.core.services.databinding;version="1.19.0",
-  org.eclipse.emfforms.spi.core.services.domainexpander;version="1.19.0",
-  org.eclipse.emfforms.spi.core.services.label;version="1.19.0",
-  org.eclipse.emfforms.spi.core.services.mappingprovider;version="1.19.0",
-  org.eclipse.emfforms.spi.core.services.structuralchange;version="1.19.0",
-  org.eclipse.emfforms.spi.core.services.view;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.controlmapper;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.mappingprovider;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.scoped;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.core.services.controlmapper;version="1.20.0",
+ org.eclipse.emfforms.spi.core.services.databinding;version="1.20.0",
+ org.eclipse.emfforms.spi.core.services.domainexpander;version="1.20.0",
+ org.eclipse.emfforms.spi.core.services.label;version="1.20.0",
+ org.eclipse.emfforms.spi.core.services.mappingprovider;version="1.20.0",
+ org.eclipse.emfforms.spi.core.services.structuralchange;version="1.20.0",
+ org.eclipse.emfforms.spi.core.services.view;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.core.services.controlmapper.SettingToControlMapFactoryImpl.xml,OSGI-INF/org.eclipse.emfforms.internal.core.services.mappingprovider.EMFFormsMappingProviderManagerImpl.xml,OSGI-INF/org.eclipse.emfforms.internal.core.services.scoped.EMFFormsViewServiceManagerImpl.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.databinding.observable.list;version="0.0.0",
-  org.eclipse.core.databinding.observable.value;version="0.0.0",
-  org.eclipse.core.databinding.property.list;version="0.0.0",
-  org.eclipse.core.databinding.property.value;version="0.0.0",
-  org.eclipse.emf.ecp.view.spi.model;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="1.8.0",
-  org.osgi.service.component.annotations;version="[1.0.0,2.0.0)";resolution:=optional
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.core.databinding.property.list;version="0.0.0",
+ org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emf.ecp.view.spi.model;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="1.8.0",
+ org.osgi.service.component.annotations;version="[1.0.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.core.services
diff --git a/bundles/org.eclipse.emfforms.core.services/pom.xml b/bundles/org.eclipse.emfforms.core.services/pom.xml
index 2e0b421..6449792 100644
--- a/bundles/org.eclipse.emfforms.core.services/pom.xml
+++ b/bundles/org.eclipse.emfforms.core.services/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.services</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/controlmapper/SettingToControlMapperImpl.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/controlmapper/SettingToControlMapperImpl.java
index 14530a6..40855a3 100644
--- a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/controlmapper/SettingToControlMapperImpl.java
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/internal/core/services/controlmapper/SettingToControlMapperImpl.java
@@ -27,6 +27,7 @@
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.common.spi.UniqueSetting;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeAddRemoveListener;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeNotification;
@@ -35,6 +36,7 @@
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emfforms.spi.core.services.controlmapper.EMFFormsSettingToControlMapper;
+import org.eclipse.emfforms.spi.core.services.controlmapper.SubControlMapper;
 import org.eclipse.emfforms.spi.core.services.mappingprovider.EMFFormsMappingProviderManager;
 import org.eclipse.emfforms.spi.core.services.view.EMFFormsContextListener;
 import org.eclipse.emfforms.spi.core.services.view.EMFFormsViewContext;
@@ -45,7 +47,8 @@
  * @author Lucas Koehler
  *
  */
-public class SettingToControlMapperImpl implements EMFFormsSettingToControlMapper, EMFFormsContextListener {
+public class SettingToControlMapperImpl
+	implements EMFFormsSettingToControlMapper, EMFFormsContextListener, SubControlMapper {
 	/**
 	 * Used to get View model changes.
 	 *
@@ -424,6 +427,21 @@
 	}
 
 	@Override
+	public Collection<EObject> getEObjectsWithSettings(VElement element) {
+		final Set<EObject> result = new LinkedHashSet<>();
+
+		for (final Iterator<EObject> iter = EcoreUtil.getAllContents(Collections.singleton(element)); iter.hasNext();) {
+			final EObject next = iter.next();
+			final List<UniqueSetting> settings = controlToSettingMap.get(next);
+			if (settings != null && !settings.isEmpty()) {
+				settings.stream().map(UniqueSetting::getEObject).forEach(result::add);
+			}
+		}
+
+		return result;
+	}
+
+	@Override
 	public Set<UniqueSetting> getSettingsForControl(VControl control) {
 		final List<UniqueSetting> settings = controlToSettingMap.get(control);
 		if (settings == null) {
diff --git a/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/controlmapper/SubControlMapper.java b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/controlmapper/SubControlMapper.java
new file mode 100644
index 0000000..e36d31b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.core.services/src/org/eclipse/emfforms/spi/core/services/controlmapper/SubControlMapper.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2019 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:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.core.services.controlmapper;
+
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+
+/**
+ * An optional interface provided by an {@link EMFFormsSettingToControlMapper}
+ * for queries specific to sub-trees of the view control hierarchy.
+ *
+ * @since 1.20
+ */
+public interface SubControlMapper {
+
+	/**
+	 * Obtain a collection of all objects that have a mapped setting in the
+	 * hierarchy of the given view {@code element}.
+	 *
+	 * @param element the view sub-tree for which to get objects
+	 * @return the objects presented in the view sub-tree that have settings
+	 */
+	Collection<EObject> getEObjectsWithSettings(VElement element);
+
+}
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.datatemplate.model.edit/META-INF/MANIFEST.MF
index 8eb895f..ac8b74f 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.datatemplate.model.edit/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms DataTemplate Edit
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.datatemplate.provider.DatatemplateEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.datatemplate.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.datatemplate.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
-  org.eclipse.emfforms.datatemplate.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)";visibility:=reexport
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emfforms.datatemplate.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model.edit/pom.xml b/bundles/org.eclipse.emfforms.datatemplate.model.edit/pom.xml
index 518a667..473f4e4 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model.edit/pom.xml
+++ b/bundles/org.eclipse.emfforms.datatemplate.model.edit/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.datatemplate.model.edit</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.datatemplate.model/META-INF/MANIFEST.MF
index 4b16b97..51f2e8c 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/META-INF/MANIFEST.MF
@@ -1,26 +1,29 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: EMFForms DataTemplate Model
+Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
-Bundle-Vendor: Eclipse Modeling Project
+Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
- org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emfforms.datatemplate;version="1.19.0";uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util",
- org.eclipse.emfforms.datatemplate.impl;version="1.19.0";x-internal:=true;
+Export-Package: org.eclipse.emfforms.datatemplate;version="1.20.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.util",
+ org.eclipse.emfforms.datatemplate.impl;version="1.20.0";
   uses:="org.eclipse.emf.ecore,
    org.eclipse.emf.ecore.impl,
    org.eclipse.emf.common.util,
    org.eclipse.emf.common.notify,
-   org.eclipse.emfforms.datatemplate",
- org.eclipse.emfforms.datatemplate.util;version="1.19.0";
+   org.eclipse.emfforms.datatemplate";x-internal:=true,
+ org.eclipse.emfforms.datatemplate.util;version="1.20.0";
   uses:="org.eclipse.emf.ecore,
    org.eclipse.emf.common.notify,
    org.eclipse.emf.common.notify.impl,
    org.eclipse.emfforms.datatemplate,
    org.eclipse.emf.ecore.util"
+Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.datatemplate.model
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel b/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel
index 9c8a0e0..036e249 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/model/datatemplate.genmodel
@@ -10,7 +10,7 @@
     operationReflection="true" importOrganizing="true" cleanup="true">
   <foreignModel>datatemplate.ecore</foreignModel>
   <genPackages prefix="DataTemplate" basePackage="org.eclipse.emfforms" disposableProviderFactory="true"
-      ecorePackage="datatemplate.ecore#/">
+      contentTypeIdentifier="org.eclipse.emfforms.datatemplate.model" ecorePackage="datatemplate.ecore#/">
     <genClasses ecoreClass="datatemplate.ecore#//Template">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute datatemplate.ecore#//Template/name"/>
       <genFeatures children="true" createChild="false" ecoreFeature="ecore:EReference datatemplate.ecore#//Template/instance"/>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/plugin.properties b/bundles/org.eclipse.emfforms.datatemplate.model/plugin.properties
index 74cf877..52569aa 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/plugin.properties
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/plugin.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2011-2017 EclipseSource Muenchen GmbH and others.
+# Copyright (c) 2011-2019 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
@@ -8,5 +8,6 @@
 # Contributors:
 # EclipseSource Munich - initial API and implementation
 
-pluginName = DataTemplate Model
-providerName = www.example.org
+pluginName = EMFForms DataTemplate Model
+providerName = Eclipse Modeling Project
+_UI_DataTemplate_content_type = EMF Forms Data Template File
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/plugin.xml b/bundles/org.eclipse.emfforms.datatemplate.model/plugin.xml
index 1791f3c..79d3ee1 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/plugin.xml
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/plugin.xml
@@ -15,4 +15,26 @@
             genModel="model/datatemplate.genmodel"/>
    </extension>
 
+   <extension point="org.eclipse.emf.ecore.content_parser">
+      <!-- @generated datatemplate -->
+      <parser
+            contentTypeIdentifier="org.eclipse.emfforms.datatemplate.model"
+            class="org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl"/>
+   </extension>
+
+   <extension point="org.eclipse.core.contenttype.contentTypes">
+      <!-- @generated datatemplate -->
+      <content-type
+            base-type="org.eclipse.emf.ecore.xmi"
+            file-extensions="datatemplate"
+            id="org.eclipse.emfforms.datatemplate.model"
+            name="%_UI_DataTemplate_content_type"
+            priority="normal">
+         <describer class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+            <parameter name="namespace" value="http://org/eclipse/emfforms/datatemplate/model"/>
+            <parameter name="kind" value="xmi"/>
+         </describer>
+      </content-type>
+   </extension>
+
 </plugin>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/pom.xml b/bundles/org.eclipse.emfforms.datatemplate.model/pom.xml
index ae7e779..81bfbf7 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.datatemplate.model</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplatePackage.java b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplatePackage.java
index 9993eae..4b3ad8b 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplatePackage.java
+++ b/bundles/org.eclipse.emfforms.datatemplate.model/src/org/eclipse/emfforms/datatemplate/DataTemplatePackage.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * EclipseSource Muenchen GmbH - initial API and implementation
+ * Christian W. Damus - bug 544499
  */
 package org.eclipse.emfforms.datatemplate;
 
@@ -28,6 +29,7 @@
  * <li>and each data type</li>
  * </ul>
  * <!-- end-user-doc -->
+ *
  * @see org.eclipse.emfforms.datatemplate.DataTemplateFactory
  * @model kind="package"
  * @generated
@@ -37,6 +39,7 @@
 	 * The package name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	String eNAME = "datatemplate";
@@ -45,6 +48,7 @@
 	 * The package namespace URI.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	String eNS_URI = "http://org/eclipse/emfforms/datatemplate/model";
@@ -53,14 +57,26 @@
 	 * The package namespace name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	String eNS_PREFIX = "org.eclipse.emfforms.datatemplate.model";
 
 	/**
+	 * The package content type ID.
+	 * <!-- begin-user-doc -->
+	 *
+	 * @since 1.20
+	 *        <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eCONTENT_TYPE = "org.eclipse.emfforms.datatemplate.model"; //$NON-NLS-1$
+
+	/**
 	 * The singleton instance of the package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	DataTemplatePackage eINSTANCE = org.eclipse.emfforms.datatemplate.impl.DataTemplatePackageImpl.init();
@@ -69,6 +85,7 @@
 	 * The meta object id for the '{@link org.eclipse.emfforms.datatemplate.impl.TemplateImpl <em>Template</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see org.eclipse.emfforms.datatemplate.impl.TemplateImpl
 	 * @see org.eclipse.emfforms.datatemplate.impl.DataTemplatePackageImpl#getTemplate()
 	 * @generated
@@ -79,6 +96,7 @@
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 * @ordered
 	 */
@@ -88,6 +106,7 @@
 	 * The feature id for the '<em><b>Instance</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 * @ordered
 	 */
@@ -97,6 +116,7 @@
 	 * The number of structural features of the '<em>Template</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 * @ordered
 	 */
@@ -106,15 +126,18 @@
 	 * The number of operations of the '<em>Template</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 * @ordered
 	 */
 	int TEMPLATE_OPERATION_COUNT = 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.emfforms.datatemplate.impl.TemplateCollectionImpl <em>Template Collection</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.emfforms.datatemplate.impl.TemplateCollectionImpl <em>Template
+	 * Collection</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @see org.eclipse.emfforms.datatemplate.impl.TemplateCollectionImpl
 	 * @see org.eclipse.emfforms.datatemplate.impl.DataTemplatePackageImpl#getTemplateCollection()
 	 * @generated
@@ -125,6 +148,7 @@
 	 * The feature id for the '<em><b>Templates</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 * @ordered
 	 */
@@ -134,6 +158,7 @@
 	 * The number of structural features of the '<em>Template Collection</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 * @ordered
 	 */
@@ -143,6 +168,7 @@
 	 * The number of operations of the '<em>Template Collection</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 * @ordered
 	 */
@@ -152,6 +178,7 @@
 	 * Returns the meta object for class '{@link org.eclipse.emfforms.datatemplate.Template <em>Template</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @return the meta object for class '<em>Template</em>'.
 	 * @see org.eclipse.emfforms.datatemplate.Template
 	 * @generated
@@ -159,9 +186,11 @@
 	EClass getTemplate();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.emfforms.datatemplate.Template#getName <em>Name</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.emfforms.datatemplate.Template#getName
+	 * <em>Name</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @return the meta object for the attribute '<em>Name</em>'.
 	 * @see org.eclipse.emfforms.datatemplate.Template#getName()
 	 * @see #getTemplate()
@@ -170,9 +199,11 @@
 	EAttribute getTemplate_Name();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.emfforms.datatemplate.Template#getInstance <em>Instance</em>}'.
+	 * Returns the meta object for the containment reference
+	 * '{@link org.eclipse.emfforms.datatemplate.Template#getInstance <em>Instance</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @return the meta object for the containment reference '<em>Instance</em>'.
 	 * @see org.eclipse.emfforms.datatemplate.Template#getInstance()
 	 * @see #getTemplate()
@@ -181,9 +212,11 @@
 	EReference getTemplate_Instance();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.emfforms.datatemplate.TemplateCollection <em>Template Collection</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.emfforms.datatemplate.TemplateCollection <em>Template
+	 * Collection</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @return the meta object for class '<em>Template Collection</em>'.
 	 * @see org.eclipse.emfforms.datatemplate.TemplateCollection
 	 * @generated
@@ -191,9 +224,11 @@
 	EClass getTemplateCollection();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.emfforms.datatemplate.TemplateCollection#getTemplates <em>Templates</em>}'.
+	 * Returns the meta object for the containment reference list
+	 * '{@link org.eclipse.emfforms.datatemplate.TemplateCollection#getTemplates <em>Templates</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @return the meta object for the containment reference list '<em>Templates</em>'.
 	 * @see org.eclipse.emfforms.datatemplate.TemplateCollection#getTemplates()
 	 * @see #getTemplateCollection()
@@ -205,6 +240,7 @@
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 *
 	 * @return the factory that creates the instances of the model.
 	 * @generated
 	 */
@@ -221,13 +257,16 @@
 	 * <li>and each data type</li>
 	 * </ul>
 	 * <!-- end-user-doc -->
+	 *
 	 * @generated
 	 */
 	interface Literals {
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emfforms.datatemplate.impl.TemplateImpl <em>Template</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.emfforms.datatemplate.impl.TemplateImpl
+		 * <em>Template</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 *
 		 * @see org.eclipse.emfforms.datatemplate.impl.TemplateImpl
 		 * @see org.eclipse.emfforms.datatemplate.impl.DataTemplatePackageImpl#getTemplate()
 		 * @generated
@@ -238,6 +277,7 @@
 		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 *
 		 * @generated
 		 */
 		EAttribute TEMPLATE__NAME = eINSTANCE.getTemplate_Name();
@@ -246,14 +286,17 @@
 		 * The meta object literal for the '<em><b>Instance</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 *
 		 * @generated
 		 */
 		EReference TEMPLATE__INSTANCE = eINSTANCE.getTemplate_Instance();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.emfforms.datatemplate.impl.TemplateCollectionImpl <em>Template Collection</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.emfforms.datatemplate.impl.TemplateCollectionImpl
+		 * <em>Template Collection</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 *
 		 * @see org.eclipse.emfforms.datatemplate.impl.TemplateCollectionImpl
 		 * @see org.eclipse.emfforms.datatemplate.impl.DataTemplatePackageImpl#getTemplateCollection()
 		 * @generated
@@ -264,6 +307,7 @@
 		 * The meta object literal for the '<em><b>Templates</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
+		 *
 		 * @generated
 		 */
 		EReference TEMPLATE_COLLECTION__TEMPLATES = eINSTANCE.getTemplateCollection_Templates();
diff --git a/bundles/org.eclipse.emfforms.datatemplate.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.datatemplate.tooling/META-INF/MANIFEST.MF
index 639123c..f209db4 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.datatemplate.tooling/META-INF/MANIFEST.MF
@@ -2,41 +2,41 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms DataTemplate Tooling
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.tooling;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
-  org.eclipse.ui;bundle-version="[3.109.0,4.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.13.1,4.0.0)",
-  org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.datatemplate.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.13.0,3.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.13.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.ui;bundle-version="[3.109.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.13.1,4.0.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.emf.ecp.ui.view.swt.reference;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.bazaar;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.editor;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="1.3.0"
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.datatemplate.tooling.editor.TemplateInstanceRendererService.xml,OSGI-INF/org.eclipse.emfforms.internal.datatemplate.tooling.editor.DataTemplateEClassSelectionStrategyProvider.xml
 Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.emf.ecp.ui.view.swt.reference;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.bazaar;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.editor;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="1.3.0"
 Automatic-Module-Name: org.eclipse.emfforms.datatemplate.tooling
diff --git a/bundles/org.eclipse.emfforms.datatemplate.tooling/plugin.xml b/bundles/org.eclipse.emfforms.datatemplate.tooling/plugin.xml
index 1c64a38..317dc11 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.tooling/plugin.xml
+++ b/bundles/org.eclipse.emfforms.datatemplate.tooling/plugin.xml
@@ -4,7 +4,7 @@
    <extension
          point="org.eclipse.ui.editors">
       <editor
-            class="org.eclipse.emfforms.spi.editor.GenericEditor"
+            class="org.eclipse.emfforms.internal.datatemplate.tooling.editor.DataTemplateEditor"
             default="true"
             extensions="datatemplate"
             icon="icons/Template.gif"
diff --git a/bundles/org.eclipse.emfforms.datatemplate.tooling/pom.xml b/bundles/org.eclipse.emfforms.datatemplate.tooling/pom.xml
index 17f006e..020391d 100644
--- a/bundles/org.eclipse.emfforms.datatemplate.tooling/pom.xml
+++ b/bundles/org.eclipse.emfforms.datatemplate.tooling/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.datatemplate.tooling</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.datatemplate.tooling/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/DataTemplateEditor.java b/bundles/org.eclipse.emfforms.datatemplate.tooling/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/DataTemplateEditor.java
new file mode 100644
index 0000000..132bfbb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.datatemplate.tooling/src/org/eclipse/emfforms/internal/datatemplate/tooling/editor/DataTemplateEditor.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.datatemplate.tooling.editor;
+
+import org.eclipse.emfforms.datatemplate.TemplateCollection;
+import org.eclipse.emfforms.spi.editor.GenericEditor;
+
+/**
+ * The DataTemplateEditor for editing {@link TemplateCollection}.
+ * 
+ * @author Eugen Neufeld
+ *
+ */
+public class DataTemplateEditor extends GenericEditor {
+
+	@Override
+	protected boolean enableValidation() {
+		return true;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.editor.ecore/META-INF/MANIFEST.MF
index 0493024..7c7b291 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.editor.ecore/META-INF/MANIFEST.MF
@@ -2,46 +2,46 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Ecore Editor based on EMFForms
 Bundle-SymbolicName: org.eclipse.emfforms.editor.ecore;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.editor.ecore;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.editor.ecore.actions;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.editor.ecore.controls;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.editor.ecore.helpers;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.editor.ecore.referenceservices;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.editor.ecore;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.actions;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.controls;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.helpers;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ecore.referenceservices;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
-  org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.ui.workbench;bundle-version="[3.106.0,4.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.annotation.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.106.0,4.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/InstanceTypeNameSWTRendererService.xml,OSGI-INF/dataTypeControlService.xml,OSGI-INF/eenumLiteralControlService.xml,OSGI-INF/typedElementBoundsControlService.xml,OSGI-INF/ecoreAttachmentStrategyProvider.xml,OSGI-INF/ecoreEObjectSelectionStrategyProvider.xml,OSGI-INF/ecoreOpenInNewContextStrategyProvider.xml,OSGI-INF/ecoreReferenceStrategyProvider.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.bazaar;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core.di;version="[1.19.0,1.20.0)";resolution:=optional,
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emfforms.bazaar;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.20.0,1.21.0)";resolution:=optional,
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.editor.ecore
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/pom.xml b/bundles/org.eclipse.emfforms.editor.ecore/pom.xml
index 829b916..cc7e24d 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/pom.xml
+++ b/bundles/org.eclipse.emfforms.editor.ecore/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.editor.ecore</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditor.java b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditor.java
index 874d35a..0971ba2 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditor.java
+++ b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditor.java
@@ -41,9 +41,11 @@
 	@Override
 	protected TreeMasterDetailComposite createTreeMasterDetail(Composite composite, Object editorInput,
 		CreateElementCallback createElementCallback) {
+		final EcoreEditorTMDCustomization buildBehaviour = new EcoreEditorTMDCustomization(createElementCallback,
+			(Notifier) editorInput, (EcoreDiagnosticCache) getDiagnosticCache());
+		buildBehaviour.setTree(createTreeViewerBuilder());
 		return TreeMasterDetailSWTFactory.createTreeMasterDetail(composite, SWT.NONE, editorInput,
-			new EcoreEditorTMDCustomization(createElementCallback, (Notifier) editorInput,
-				(EcoreDiagnosticCache) getDiagnosticCache()));
+			buildBehaviour);
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditorMenuListener.java b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditorMenuListener.java
index fe80ab1..b0c84c4 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditorMenuListener.java
+++ b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/EcoreEditorMenuListener.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2018 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
@@ -13,6 +13,8 @@
 
 import java.util.Collection;
 
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecp.common.spi.ChildrenDescriptorCollector;
 import org.eclipse.emf.edit.command.CommandParameter;
 import org.eclipse.emf.edit.domain.EditingDomain;
@@ -21,6 +23,7 @@
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailMenuListener;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.actions.MasterDetailAction;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback;
+import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.viewers.TreeViewer;
 
@@ -50,6 +53,26 @@
 	}
 
 	@Override
+	protected IAction createCreateChildAction(EditingDomain domain, EObject eObject, CommandParameter cp) {
+		final IAction action = super.createCreateChildAction(domain, eObject, cp);
+
+		/*
+		 * If the command parameter creates an EAnnotation and the EAnnotation has a pre-configured source, we want to
+		 * show the source in the action's label.
+		 */
+		final Object value = cp.getValue();
+		if (value instanceof EAnnotation) {
+			final EAnnotation annotation = (EAnnotation) value;
+			if (annotation.getSource() != null && !annotation.getSource().isEmpty()) {
+				final String actionText = action.getText() + " - " + annotation.getSource();
+				action.setText(actionText);
+			}
+		}
+
+		return action;
+	}
+
+	@Override
 	protected boolean filterDescriptor(CommandParameter cp) {
 		return EcoreHelpers.isGenericFeature(cp.getFeature());
 	}
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/referenceservices/EcoreAttachmentStrategyProvider.java b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/referenceservices/EcoreAttachmentStrategyProvider.java
index 1713f3d..022f66f 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/referenceservices/EcoreAttachmentStrategyProvider.java
+++ b/bundles/org.eclipse.emfforms.editor.ecore/src/org/eclipse/emfforms/internal/editor/ecore/referenceservices/EcoreAttachmentStrategyProvider.java
@@ -14,7 +14,6 @@
 package org.eclipse.emfforms.internal.editor.ecore.referenceservices;
 
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EModelElement;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EcorePackage;
@@ -47,7 +46,7 @@
 
 	@Override
 	protected boolean handles(EObject owner, EReference reference) {
-		return owner instanceof EModelElement;
+		return reference == EcorePackage.Literals.EREFERENCE__EOPPOSITE;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emfforms.editor.ecore/viewmodels/EAnnotation.view b/bundles/org.eclipse.emfforms.editor.ecore/viewmodels/EAnnotation.view
index f140c7d..9190967 100644
--- a/bundles/org.eclipse.emfforms.editor.ecore/viewmodels/EAnnotation.view
+++ b/bundles/org.eclipse.emfforms.editor.ecore/viewmodels/EAnnotation.view
@@ -24,11 +24,6 @@
         <domainModelEFeature xsi:type="ecore:EReference" href="http://www.eclipse.org/emf/2002/Ecore#//EModelElement/eAnnotations"/>
       </domainModelReference>
     </children>
-    <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_vkW5phdNEeaEDZYMI15WfQ" name="Control eModelElement">
-      <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_vkW5pxdNEeaEDZYMI15WfQ">
-        <domainModelEFeature xsi:type="ecore:EReference" href="http://www.eclipse.org/emf/2002/Ecore#//EAnnotation/eModelElement"/>
-      </domainModelReference>
-    </children>
     <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_vkW5qhdNEeaEDZYMI15WfQ" name="Control references">
       <attachments xsi:type="org.eclipse.emfforms.view.annotation.model:Annotation" xmi:id="_vkW5qyvNEeaEDZYMI15WfQ" key="hideAddNewButton"/>
       <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_vkW5qxdNEeaEDZYMI15WfQ">
diff --git a/bundles/org.eclipse.emfforms.editor.genmodel.util/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.editor.genmodel.util/META-INF/MANIFEST.MF
index 1c66fd3..08cdb3f 100644
--- a/bundles/org.eclipse.emfforms.editor.genmodel.util/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.editor.genmodel.util/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Genmodel Editor Utilities
 Bundle-SymbolicName: org.eclipse.emfforms.editor.genmodel.util;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.editor.genmodel.util;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.genmodel.util;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.genmodel.util.handler;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.editor.genmodel.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.util.handler;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
diff --git a/bundles/org.eclipse.emfforms.editor.genmodel.util/pom.xml b/bundles/org.eclipse.emfforms.editor.genmodel.util/pom.xml
index 4d839cd..07d3027 100644
--- a/bundles/org.eclipse.emfforms.editor.genmodel.util/pom.xml
+++ b/bundles/org.eclipse.emfforms.editor.genmodel.util/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.editor.genmodel/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.editor.genmodel/META-INF/MANIFEST.MF
index ab4a9e3..e87fc3f 100644
--- a/bundles/org.eclipse.emfforms.editor.genmodel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.editor.genmodel/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: GenModel Editor based on EMFForms
 Bundle-SymbolicName: org.eclipse.emfforms.editor.genmodel;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emfforms.internal.editor.genmodel.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.editor.genmodel;version="1.19.0";x-internal:=true;uses:="org.eclipse.emfforms.spi.editor",
-  org.eclipse.emfforms.internal.editor.genmodel.service;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.editor.genmodel.toolbaractions;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.editor.genmodel.util;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.codegen.ecore.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.osgi;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.editor.genmodel;version="1.20.0";x-internal:=true;uses:="org.eclipse.emfforms.spi.editor",
+ org.eclipse.emfforms.internal.editor.genmodel.service;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.toolbaractions;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.genmodel.util;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.codegen.ecore.ui;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.osgi;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.core.runtime;version="3.4.0"
diff --git a/bundles/org.eclipse.emfforms.editor.genmodel/pom.xml b/bundles/org.eclipse.emfforms.editor.genmodel/pom.xml
index 9888b50..b0983c5 100644
--- a/bundles/org.eclipse.emfforms.editor.genmodel/pom.xml
+++ b/bundles/org.eclipse.emfforms.editor.genmodel/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.editor.genmodel</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.editor.genmodel/src/org/eclipse/emfforms/internal/editor/genmodel/GenModelEditor.java b/bundles/org.eclipse.emfforms.editor.genmodel/src/org/eclipse/emfforms/internal/editor/genmodel/GenModelEditor.java
index e719d16..8b8cb90 100644
--- a/bundles/org.eclipse.emfforms.editor.genmodel/src/org/eclipse/emfforms/internal/editor/genmodel/GenModelEditor.java
+++ b/bundles/org.eclipse.emfforms.editor.genmodel/src/org/eclipse/emfforms/internal/editor/genmodel/GenModelEditor.java
@@ -48,17 +48,15 @@
 		return super.modifyEditorInput(resourceSet);
 	}
 
-	/**
-	 * {@inheritDoc}
-	 *
-	 * @see org.eclipse.emfforms.spi.editor.GenericEditor#createTreeMasterDetail(org.eclipse.swt.widgets.Composite,
-	 *      java.lang.Object, org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback)
-	 */
+	@SuppressWarnings("restriction")
 	@Override
 	protected TreeMasterDetailComposite createTreeMasterDetail(Composite composite, Object editorInput,
 		CreateElementCallback createElementCallback) {
+		final GenModelEditorTMDCustomization buildBehaviour = new GenModelEditorTMDCustomization(createElementCallback,
+			(Notifier) editorInput);
+		buildBehaviour.setTree(createTreeViewerBuilder());
 		return TreeMasterDetailSWTFactory.createTreeMasterDetail(composite, SWT.NONE, editorInput,
-			new GenModelEditorTMDCustomization(createElementCallback, (Notifier) editorInput));
+			buildBehaviour);
 	}
 
 }
diff --git a/bundles/org.eclipse.emfforms.editor.viewmodel/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.editor.viewmodel/META-INF/MANIFEST.MF
index 1ceaa1d..dcb551a 100644
--- a/bundles/org.eclipse.emfforms.editor.viewmodel/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.editor.viewmodel/META-INF/MANIFEST.MF
@@ -2,37 +2,37 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewModel Editor based on EMFForms
 Bundle-SymbolicName: org.eclipse.emfforms.editor.viewmodel;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.editor.viewmodel;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3"
+Export-Package: org.eclipse.emfforms.internal.editor.viewmodel;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.model.preview.e3"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.ide;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.0.0,4.0.0)"
+ org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.ide;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.0.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.editor.viewmodel
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.plugin;version="0.0.0"
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.part;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.plugin;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.editor.viewmodel/pom.xml b/bundles/org.eclipse.emfforms.editor.viewmodel/pom.xml
index 14593ed..bfc1b5f 100644
--- a/bundles/org.eclipse.emfforms.editor.viewmodel/pom.xml
+++ b/bundles/org.eclipse.emfforms.editor.viewmodel/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.editor.viewmodel</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF
index cc4afb5..333a85a 100644
--- a/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.editor/META-INF/MANIFEST.MF
@@ -2,35 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Editor based on EMFForms
 Bundle-SymbolicName: org.eclipse.emfforms.editor;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emfforms.internal.editor.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.editor;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.editor.handlers;version="1.19.0";;x-internal:=true;x-friends:="org.eclipse.emfforms.editor.ecore",
- org.eclipse.emfforms.internal.editor.toolbaractions;version="1.19.0";;x-internal:=true;x-internal:=true,
- org.eclipse.emfforms.internal.editor.ui;version="1.19.0";x-friends:="org.eclipse.emfforms.editor.ecore",
- org.eclipse.emfforms.spi.editor;version="1.19.0",
- org.eclipse.emfforms.spi.editor.handler;version="1.19.0",
- org.eclipse.emfforms.spi.editor.helpers;version="1.19.0";;x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor.genmodel",
- org.eclipse.emfforms.spi.editor.messages;version="1.19.0"
+Export-Package: org.eclipse.emfforms.internal.editor;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.editor.handlers;version="1.20.0";;x-internal:=true;x-friends:="org.eclipse.emfforms.editor.ecore",
+ org.eclipse.emfforms.internal.editor.toolbaractions;version="1.20.0";;x-internal:=true;x-internal:=true,
+ org.eclipse.emfforms.internal.editor.ui;version="1.20.0";x-friends:="org.eclipse.emfforms.editor.ecore",
+ org.eclipse.emfforms.spi.editor;version="1.20.0",
+ org.eclipse.emfforms.spi.editor.handler;version="1.20.0",
+ org.eclipse.emfforms.spi.editor.helpers;version="1.20.0";;x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor.genmodel",
+ org.eclipse.emfforms.spi.editor.messages;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.swt.core.di;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.swt.core.di;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emfforms.editor
diff --git a/bundles/org.eclipse.emfforms.editor/pom.xml b/bundles/org.eclipse.emfforms.editor/pom.xml
index 5078271..ad97240 100644
--- a/bundles/org.eclipse.emfforms.editor/pom.xml
+++ b/bundles/org.eclipse.emfforms.editor/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.editor</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
index fd1c755..420f62a 100644
--- a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
+++ b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
@@ -69,12 +69,16 @@
 import org.eclipse.emfforms.spi.swt.treemasterdetail.MenuProvider;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailComposite;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailMenuListener;
+import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailSWTBuilder;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeMasterDetailSWTFactory;
+import org.eclipse.emfforms.spi.swt.treemasterdetail.TreeViewerBuilder;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.actions.ActionCollector;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.actions.MasterDetailAction;
+import org.eclipse.emfforms.spi.swt.treemasterdetail.decorator.validation.ecp.ECPValidationLabelDecoratorProvider;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.diagnostic.DiagnosticCache;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.diagnostic.DiagnosticCache.ValidationListener;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback;
+import org.eclipse.emfforms.spi.swt.treemasterdetail.util.RootObject;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -85,6 +89,8 @@
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.window.Window;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
@@ -98,6 +104,7 @@
 import org.eclipse.ui.IPartListener;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.contexts.IContextActivation;
 import org.eclipse.ui.contexts.IContextService;
 import org.eclipse.ui.dialogs.SaveAsDialog;
 import org.eclipse.ui.ide.IGotoMarker;
@@ -108,6 +115,8 @@
  */
 public class GenericEditor extends EditorPart implements IEditingDomainProvider, IGotoMarker {
 
+	private static final String GENERIC_EDITOR_CONTEXT = "org.eclipse.emfforms.editor.context"; //$NON-NLS-1$
+
 	private static final String FRAGMENT_URI = "FRAGMENT_URI"; //$NON-NLS-1$
 
 	private static final String RESOURCE_URI = "RESOURCE_URI"; //$NON-NLS-1$
@@ -266,10 +275,6 @@
 			}
 		});
 
-		// Activate our context, so that our key-bindings are more important than
-		// the default ones!
-		site.getService(IContextService.class).activateContext(getContextId());
-
 		site.getPage().addPartListener(partListener);
 
 		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener);
@@ -283,7 +288,7 @@
 	 * @return the context id
 	 */
 	protected String getContextId() {
-		return "org.eclipse.emfforms.editor.context"; //$NON-NLS-1$
+		return GENERIC_EDITOR_CONTEXT;
 	}
 
 	@Override
@@ -380,12 +385,26 @@
 			IResource.DEPTH_ZERO);
 	}
 
-	private void setupDiagnosticCache(Object editorInput) {
-		if (!Notifier.class.isInstance(editorInput)) {
-			return;
+	/**
+	 * Get the Notifier from the tree input.
+	 * 
+	 * @param editorInput The editor input to transform
+	 * @return {@link Notifier}
+	 * @throws IllegalStateException if the editor input is not a Notifier
+	 */
+	protected Notifier getNotifierFromEditorInput(Object editorInput) {
+		Object input = editorInput;
+		if (input instanceof RootObject) {
+			input = ((RootObject) input).getRoot();
 		}
-		final Notifier input = (Notifier) editorInput;
-		cache = createDiangosticCache(input);
+		if (!Notifier.class.isInstance(input)) {
+			throw new IllegalStateException("The editor input is not a Notifier!"); //$NON-NLS-1$
+		}
+		return (Notifier) input;
+	}
+
+	private void setupDiagnosticCache(Object editorInput) {
+		cache = createDiangosticCache(getNotifierFromEditorInput(editorInput));
 	}
 
 	/**
@@ -449,6 +468,17 @@
 	}
 
 	/**
+	 * Returns the root composite containing the tree and the detail view. This is null before the editor control is
+	 * created.
+	 *
+	 * @return The root {@link TreeMasterDetailComposite} of this editor
+	 * @since 1.20
+	 */
+	protected TreeMasterDetailComposite getRootView() {
+		return rootView;
+	}
+
+	/**
 	 * This method creates a tree master detail. Override this method if you want to customize the tree.
 	 *
 	 * @param composite the parent composite
@@ -461,7 +491,7 @@
 		final Composite composite,
 		Object editorInput,
 		final CreateElementCallback createElementCallback) {
-		final TreeMasterDetailComposite treeMasterDetail = TreeMasterDetailSWTFactory
+		final TreeMasterDetailSWTBuilder builder = TreeMasterDetailSWTFactory
 			.fillDefaults(composite, SWT.NONE, editorInput)
 			.customizeCildCreation(createElementCallback)
 			.customizeMenu(new MenuProvider() {
@@ -480,11 +510,47 @@
 
 				}
 			})
-			.create();
+			.customizeTree(createTreeViewerBuilder());
+
+		if (enableValidation()) {
+			builder.customizeLabelDecorator(
+				new ECPValidationLabelDecoratorProvider(getNotifierFromEditorInput(editorInput), getDiagnosticCache()));
+		}
+
+		final TreeMasterDetailComposite treeMasterDetail = builder.create();
 		return treeMasterDetail;
 	}
 
 	/**
+	 * Create the {@link TreeViewerBuilder} customization which creates the tree for the editor's tree master detail.
+	 * <p>
+	 * Clients can override this to customize the tree viewer.
+	 *
+	 * @return the {@link TreeViewerBuilder} which creates the tree viewer for the editor's tree master detail
+	 * @since 1.20
+	 */
+	protected TreeViewerBuilder createTreeViewerBuilder() {
+		return parent -> {
+			final TreeViewer treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.BORDER);
+			treeViewer.setAutoExpandLevel(3);
+			treeViewer.getTree().addFocusListener(new FocusListener() {
+				private IContextActivation activation;
+
+				@Override
+				public void focusLost(FocusEvent e) {
+					getSite().getService(IContextService.class).deactivateContext(activation);
+				}
+
+				@Override
+				public void focusGained(FocusEvent e) {
+					activation = getSite().getService(IContextService.class).activateContext(getContextId());
+				}
+			});
+			return treeViewer;
+		};
+	}
+
+	/**
 	 * Allows to modify the input object for the editor.
 	 *
 	 * @param resourceSet the resourceSet which is the default editor input
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.checkstyle b/bundles/org.eclipse.emfforms.ide.builder/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESMCheckstyle" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyle" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.classpath b/bundles/org.eclipse.emfforms.ide.builder/.classpath
new file mode 100644
index 0000000..4c62a80
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.gitignore b/bundles/org.eclipse.emfforms.ide.builder/.gitignore
new file mode 100644
index 0000000..f8d886b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.gitignore
@@ -0,0 +1,2 @@
+/bin
+/bin/
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.project b/bundles/org.eclipse.emfforms.ide.builder/.project
new file mode 100644
index 0000000..4d6366d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.builder</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..654749b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,420 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8bc4bb4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emfforms.ide.builder/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.builder/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..00fde5a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.emfforms.ide.builder;singleton:=true
+Bundle-Version: 1.20.0.qualifier
+Bundle-Activator: org.eclipse.emfforms.ide.internal.builder.Activator
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.12.0,4.0.0)",
+ org.eclipse.emf.validation;bundle-version="[1.8.0,2.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,2.0.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.19.0,2.0.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,2.0.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,2.0.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Automatic-Module-Name: org.eclipse.emfforms.ide.builder
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.ide.builder;version="1.20.0",
+ org.eclipse.emfforms.ide.internal.builder;version="1.20.0";x-friends:="org.eclipse.emfforms.ide.builder.test",
+ org.eclipse.emfforms.ide.internal.builder.messages;version="1.20.0";x-internal:=true
+Service-Component: OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelValidationDelegate$Provider.xml,
+ OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelMarkerHelper$Provider.xml
+Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
diff --git a/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..d1ed2ad
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,21 @@
+#Properties file for org.eclipse.emfforms.ide.builder
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = EMFForms IDE Builder
+
+nature.command.category.name = EMF Forms Project Nature commands
+addremovenature.command.name = Add/Remove EMF Forms Project Nature
+addremovenature.natureID.name = Project Nature ID
+
+# View Models
+viewmodelbuilder.extension.name = View Model Builder
+viewmodelnature.extension.name = View Model Nature
+viewmodel.marker.extension.name = ViewModel Problem
+addviewmodelnature.command.label = Enable ViewModel Nature
+removeviewmodelnature.command.label = Disable ViewModel Nature
+
+# Extensible Validation
+validationbuilder.extension.name = Model Validation Builder
+validationnature.extension.name = Model Validation Nature
+validation.marker.extension.name = Model Validation Problem
+addvalidationnature.command.label = Enable Model Validation Nature
+removevalidationnature.command.label = Disable Model Validation Nature
diff --git a/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelMarkerHelper$Provider.xml b/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelMarkerHelper$Provider.xml
new file mode 100644
index 0000000..2bd5ac4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelMarkerHelper$Provider.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.ide.internal.builder.ViewModelMarkerHelper$Provider">
+   <service>
+      <provide interface="org.eclipse.emfforms.ide.builder.MarkerHelperProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.ide.internal.builder.ViewModelMarkerHelper$Provider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelValidationDelegate$Provider.xml b/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelValidationDelegate$Provider.xml
new file mode 100644
index 0000000..a2c12be
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/OSGI-INF/org.eclipse.emfforms.ide.internal.builder.ViewModelValidationDelegate$Provider.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.ide.internal.builder.ViewModelValidationDelegate$Provider">
+   <service>
+      <provide interface="org.eclipse.emfforms.ide.builder.ValidationDelegateProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.ide.internal.builder.ViewModelValidationDelegate$Provider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.builder/about.html b/bundles/org.eclipse.emfforms.ide.builder/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2007</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.emfforms.ide.builder/build.properties b/bundles/org.eclipse.emfforms.ide.builder/build.properties
new file mode 100644
index 0000000..05da415
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               about.html,\
+               OSGI-INF/
+jre.compilation.profile = JavaSE-1.6
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.builder/plugin.xml b/bundles/org.eclipse.emfforms.ide.builder/plugin.xml
new file mode 100644
index 0000000..85deb7c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/plugin.xml
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+   <extension
+         id="viewModelBuilder"
+         name="%viewmodelbuilder.extension.name"
+         point="org.eclipse.core.resources.builders">
+      <builder
+            hasNature="true">
+         <run
+               class="org.eclipse.emfforms.ide.internal.builder.ViewModelBuilder">
+         </run>
+      </builder>
+   </extension>
+   <extension
+         id="viewModelNature"
+         name="%viewmodelnature.extension.name"
+         point="org.eclipse.core.resources.natures">
+      <runtime>
+         <run
+               class="org.eclipse.emfforms.ide.internal.builder.ViewModelNature">
+         </run>
+      </runtime>
+      <builder
+            id="org.eclipse.emfforms.ide.builder.viewModelBuilder">
+      </builder>
+   </extension>
+   <extension
+         point="org.eclipse.ui.commands">
+      <category
+            id="org.eclipse.emfforms.ide.builder.nature.category"
+            name="%nature.command.category.name">
+      </category>
+      <command
+            categoryId="org.eclipse.emfforms.ide.builder.nature.category"
+            defaultHandler="org.eclipse.emfforms.ide.internal.builder.AddRemoveProjectNatureHandler"
+            id="org.eclipse.emfforms.ide.builder.addRemoveNature"
+            name="%addremovenature.command.name">
+         <commandParameter
+               id="natureID"
+               name="%addremovenature.natureID.name">
+         </commandParameter>
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            locationURI="popup:org.eclipse.ui.projectConfigure?after=additions">
+         <command
+               label="%removeviewmodelnature.command.label"
+               commandId="org.eclipse.emfforms.ide.builder.addRemoveNature"
+               style="push">
+            <parameter
+                  name="natureID"
+                  value="org.eclipse.emfforms.ide.builder.viewModelNature">
+            </parameter>
+            <visibleWhen
+                  checkEnabled="false">
+               <with
+                     variable="selection">
+                  <count
+                        value="1">
+                  </count>
+                  <iterate>
+                     <adapt
+                           type="org.eclipse.core.resources.IProject">
+                        <test
+                              property="org.eclipse.core.resources.projectNature"
+                              value="org.eclipse.emfforms.ide.builder.viewModelNature">
+                        </test>
+                     </adapt>
+                  </iterate>
+               </with>
+            </visibleWhen>
+         </command>
+         <command
+               label="%addviewmodelnature.command.label"
+               commandId="org.eclipse.emfforms.ide.builder.addRemoveNature"
+               style="push">
+           <parameter
+                 name="natureID"
+                 value="org.eclipse.emfforms.ide.builder.viewModelNature">
+           </parameter>
+           <visibleWhen
+                  checkEnabled="false">
+               <with
+                     variable="selection">
+                  <count
+                        value="1">
+                  </count>
+                  <iterate>
+                     <adapt
+                           type="org.eclipse.core.resources.IProject">
+                        <not>
+                           <test
+                                 property="org.eclipse.core.resources.projectNature"
+                                 value="org.eclipse.emfforms.ide.builder.viewModelNature">
+                           </test>
+                        </not>
+                     </adapt>
+                  </iterate>
+               </with>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension
+         id="ViewModelProblem"
+         name="%viewmodel.marker.extension.name"
+         point="org.eclipse.core.resources.markers">
+      <super
+            type="org.eclipse.emfforms.ide.builder.ValidationProblem">
+      </super>
+      <persistent
+            value="true">
+      </persistent>
+   </extension>
+
+
+   <extension
+         id="ValidationProblem"
+         name="%validation.marker.extension.name"
+         point="org.eclipse.core.resources.markers">
+      <super
+            type="org.eclipse.core.resources.problemmarker">
+      </super>
+      <persistent
+            value="true">
+      </persistent>
+   </extension>
+   <extension
+         id="validationBuilder"
+         name="%validationbuilder.extension.name"
+         point="org.eclipse.core.resources.builders">
+      <builder
+            hasNature="true">
+         <run
+               class="org.eclipse.emfforms.ide.internal.builder.ValidationBuilder">
+         </run>
+      </builder>
+   </extension>
+   <extension
+         id="validationNature"
+         name="%validationnature.extension.name"
+         point="org.eclipse.core.resources.natures">
+      <runtime>
+         <run
+               class="org.eclipse.emfforms.ide.internal.builder.ValidationNature">
+         </run>
+      </runtime>
+      <builder
+            id="org.eclipse.emfforms.ide.builder.validationBuilder">
+      </builder>
+   </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            locationURI="popup:org.eclipse.ui.projectConfigure?after=additions">
+         <command
+               label="%removevalidationnature.command.label"
+               commandId="org.eclipse.emfforms.ide.builder.addRemoveNature"
+               style="push">
+            <parameter
+                  name="natureID"
+                  value="org.eclipse.emfforms.ide.builder.validationNature">
+            </parameter>
+            <visibleWhen
+                  checkEnabled="false">
+               <with
+                     variable="selection">
+                  <count
+                        value="1">
+                  </count>
+                  <iterate>
+                     <adapt
+                           type="org.eclipse.core.resources.IProject">
+                        <test
+                              property="org.eclipse.core.resources.projectNature"
+                              value="org.eclipse.emfforms.ide.builder.validationNature">
+                        </test>
+                     </adapt>
+                  </iterate>
+               </with>
+            </visibleWhen>
+         </command>
+         <command
+               label="%addvalidationnature.command.label"
+               commandId="org.eclipse.emfforms.ide.builder.addRemoveNature"
+               style="push">
+           <parameter
+                 name="natureID"
+                 value="org.eclipse.emfforms.ide.builder.validationNature">
+           </parameter>
+           <visibleWhen
+                  checkEnabled="false">
+               <with
+                     variable="selection">
+                  <count
+                        value="1">
+                  </count>
+                  <iterate>
+                     <adapt
+                           type="org.eclipse.core.resources.IProject">
+                        <not>
+                           <test
+                                 property="org.eclipse.core.resources.projectNature"
+                                 value="org.eclipse.emfforms.ide.builder.validationNature">
+                           </test>
+                        </not>
+                     </adapt>
+                  </iterate>
+               </with>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+</plugin>
diff --git a/bundles/org.eclipse.emfforms.ide.builder/pom.xml b/bundles/org.eclipse.emfforms.ide.builder/pom.xml
new file mode 100644
index 0000000..433b33f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.emf.ecp</groupId>
+    <artifactId>ecp-bundles-parent</artifactId>
+    <version>1.20.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.ecp</groupId>
+  <artifactId>org.eclipse.emfforms.ide.builder</artifactId>
+  <version>1.20.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/BuilderConstants.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/BuilderConstants.java
new file mode 100644
index 0000000..af7066c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/BuilderConstants.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+/**
+ * Constants, especially for names of injectable values in bazaar vendors, the
+ * {@linkplain ValidationDelegateProvider validation-delegate} and
+ * {@linkplain MarkerHelperProvider marker-helper} providers.
+ */
+public final class BuilderConstants {
+
+	/**
+	 * Name of the content-type ID of the file in the injection context (a string value).
+	 */
+	public static final String CONTENT_TYPE = "content-type"; //$NON-NLS-1$
+
+	/**
+	 * Not instantiable by clients.
+	 */
+	private BuilderConstants() {
+		super();
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/DefaultMarkerHelper.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/DefaultMarkerHelper.java
new file mode 100644
index 0000000..9c4c910
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/DefaultMarkerHelper.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emfforms.ide.internal.builder.ValidationBuilder;
+
+/**
+ * Default implementation of the {@link MarkerHelper} that accounts for the fact
+ * that the {@link ValidationServiceDelegate} unloads its resource set before markers
+ * are created, so that objects in the {@linkplain Diagnostic diagnostics} are
+ * proxies by the time markers are created.
+ */
+public class DefaultMarkerHelper extends EditUIMarkerHelper {
+
+	/**
+	 * Initializes me.
+	 */
+	public DefaultMarkerHelper() {
+		super();
+	}
+
+	@Override
+	protected String getMarkerID() {
+		return ValidationBuilder.MARKER_ID;
+	}
+
+	@Override
+	protected IFile getFile(Object datum) {
+		return datum instanceof EObject && ((EObject) datum).eIsProxy()
+			? getFile(EcoreUtil.getURI((EObject) datum))
+			: super.getFile(datum);
+	}
+
+	@Override
+	protected void createMarkers(IResource resource, Diagnostic diagnostic, Diagnostic parentDiagnostic)
+		throws CoreException {
+
+		if (diagnostic.getChildren().isEmpty()) {
+			super.createMarkers(resource, diagnostic, parentDiagnostic);
+		} else {
+			// From the ValidationServiceDelegate, we can get more than two levels of nesting
+			for (final Diagnostic next : diagnostic.getChildren()) {
+				createMarkers(resource, next, diagnostic);
+			}
+		}
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/DefaultMarkerHelperProvider.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/DefaultMarkerHelperProvider.java
new file mode 100644
index 0000000..07bb11e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/DefaultMarkerHelperProvider.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.bazaar.StaticBid;
+
+/**
+ * Provider of the default {@link MarkerHelper} implementation.
+ */
+@StaticBid(bid = Double.NEGATIVE_INFINITY)
+class DefaultMarkerHelperProvider implements MarkerHelperProvider {
+
+	/**
+	 * Initializes me.
+	 */
+	DefaultMarkerHelperProvider() {
+		super();
+	}
+
+	/**
+	 * Create the default marker helper.
+	 *
+	 * @return a {@code DefaultMarkerHelper}
+	 */
+	@Create
+	public MarkerHelper createDefault() {
+		return new DefaultMarkerHelper();
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/MarkerHelperProvider.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/MarkerHelperProvider.java
new file mode 100644
index 0000000..2151f4d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/MarkerHelperProvider.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emfforms.bazaar.Vendor;
+
+/**
+ * Protocol for providers of marker helpers that should be registered as OSGi services.
+ * The injection context includes:
+ * <ul>
+ * <li>the {@link IFile} for which markers are to be created</li>
+ * </ul>
+ */
+// CHECKSTYLE.OFF: InterfaceIsType - Need distinct type for OSGi Service registration
+public interface MarkerHelperProvider extends Vendor<MarkerHelper> {
+	/**
+	 * Provider of the default EMF marker helper.
+	 */
+	MarkerHelperProvider DEFAULT = new DefaultMarkerHelperProvider();
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/NullValidationDelegateProvider.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/NullValidationDelegateProvider.java
new file mode 100644
index 0000000..5a23103
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/NullValidationDelegateProvider.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.bazaar.StaticBid;
+
+/**
+ * Provider of the {@link ValidationDelegate#NULL null validation delegate}.
+ */
+@StaticBid(bid = Double.NEGATIVE_INFINITY)
+class NullValidationDelegateProvider implements ValidationDelegateProvider {
+
+	/**
+	 * Initializes me.
+	 */
+	NullValidationDelegateProvider() {
+		super();
+	}
+
+	/**
+	 * Obtain the null delegate.
+	 *
+	 * @return the {@linkplain ValidationDelegate#NULL null delegate}
+	 */
+	@Create
+	public ValidationDelegate getNullDelegate() {
+		return ValidationDelegate.NULL;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationDelegate.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationDelegate.java
new file mode 100644
index 0000000..a3ef040
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationDelegate.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emfforms.common.Optional;
+
+/**
+ * Protocol for delegates that the validation builder invokes to validate workspace resources.
+ */
+public interface ValidationDelegate {
+	/**
+	 * A validation delegate that does nothing.
+	 */
+	ValidationDelegate NULL = new ValidationDelegate() {
+
+		@Override
+		public Optional<Diagnostic> validate(IFile file, IProgressMonitor monitor) {
+			if (monitor != null) {
+				monitor.done();
+			}
+
+			return Optional.empty();
+		}
+	};
+
+	/**
+	 * Validate a {@code file} in the workspace.
+	 *
+	 * @param file the file to validate
+	 * @param monitor for reporting validation progress
+	 *
+	 * @return the problems found, if any
+	 */
+	Optional<Diagnostic> validate(IFile file, IProgressMonitor monitor);
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationDelegateProvider.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationDelegateProvider.java
new file mode 100644
index 0000000..c170596
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationDelegateProvider.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emfforms.bazaar.Vendor;
+
+/**
+ * Protocol for providers of validation delegates that should be registered as OSGi services.
+ * The injection context includes:
+ * <ul>
+ * <li>the {@link IFile} to be validated</li>
+ * </ul>
+ */
+// CHECKSTYLE.OFF: InterfaceIsType - Need distinct type for OSGi Service registration
+public interface ValidationDelegateProvider extends Vendor<ValidationDelegate> {
+	/**
+	 * Provider of the {@link ValidationDelegate#NULL null validation delegate}.
+	 */
+	ValidationDelegateProvider NULL = new NullValidationDelegateProvider();
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationServiceDelegate.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationServiceDelegate.java
new file mode 100644
index 0000000..98bccf2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/builder/ValidationServiceDelegate.java
@@ -0,0 +1,202 @@
+/*******************************************************************************
+ * Copyright (c) 2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import java.io.IOException;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider;
+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.ecore.util.Diagnostician;
+import org.eclipse.emf.ecp.view.internal.validation.ECPSubstitutionLabelProvider;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.common.internal.validation.ValidationServiceImpl;
+import org.eclipse.emfforms.common.spi.validation.ValidationService;
+import org.eclipse.emfforms.common.spi.validation.exception.ValidationCanceledException;
+import org.eclipse.emfforms.ide.internal.builder.Activator;
+
+/**
+ * Implementation of a validation delegate that uses the {@link ValidationService}
+ * to validate a resource. This class may be used as is or it may be extended by
+ * clients to customize any of
+ * <ul>
+ * <li>{@link #loadModel(IFile) loading the model file}</li>
+ * <li>{@link #getModel(ResourceSet) finding the model object} to validate</li>
+ * <li>{@link #configure(ValidationService, ResourceSet, EObject) configuring the validation service}
+ * for the model's peculiar needs</li>
+ * <li>{@link #unload(ResourceSet) unloading the model} to clean up any additional resources</li>
+ * </ul>
+ */
+@SuppressWarnings("restriction")
+public class ValidationServiceDelegate implements ValidationDelegate {
+
+	/**
+	 * Initializes me.
+	 */
+	public ValidationServiceDelegate() {
+		super();
+	}
+
+	@Override
+	public Optional<Diagnostic> validate(IFile file, IProgressMonitor monitor) {
+		final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
+			ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+		ResourceSet rset = null;
+
+		try {
+			// load file thanks to ECP helpers to avoid missing Properties
+			rset = loadModel(file);
+			final EObject model = getModel(rset);
+			if (model != null) {
+				// trigger validation
+				final ValidationService service = new ValidationServiceImpl();
+				final SubstitutionLabelProvider labelProvider = new ECPSubstitutionLabelProvider(adapterFactory);
+				service.setSubstitutionLabelProvider(labelProvider);
+				configure(service, rset, model);
+
+				final Diagnostic diagnostic = service.validate(model);
+				final Set<Diagnostic> subDiagnostics = service.validate(model.eAllContents());
+
+				// create the final result, mainly extract the most relevant diagnostic among all of them
+				final Diagnostician diagnostician = new Diagnostician();
+				final BasicDiagnostic diagnostics = diagnostician.createDefaultDiagnostic(model);
+				if (diagnostic.getSeverity() >= Diagnostic.WARNING) {
+					diagnostics.add(diagnostic);
+				}
+				for (final Diagnostic sub : subDiagnostics) {
+					if (sub.getSeverity() >= Diagnostic.WARNING) {
+						diagnostics.add(sub);
+					}
+				}
+
+				return Optional.<Diagnostic> of(diagnostics);
+			}
+		} catch (final ClassCastException e) {
+			// can occur during validation
+			return Optional.of(toDiagnostic(e));
+		} catch (final IOException ex) {
+			return Optional.of(toDiagnostic(ex));
+			// BEGIN SUPRESS CATCH EXCEPTION
+		} catch (final RuntimeException e) {
+			// suppressing checkstyle warning to catch the runtime exception thrown when failing to load a resource
+			// END SUPRESS CATCH EXCEPTION
+			return Optional.of(toDiagnostic(e));
+		} catch (final ValidationCanceledException ex) {
+			// no diagnostic to return in this case
+		} finally {
+			adapterFactory.dispose();
+			if (rset != null) {
+				unload(rset);
+			}
+		}
+
+		return Optional.empty();
+	}
+
+	/**
+	 * Load a model into a resource set.
+	 *
+	 * @param file the model file to load
+	 * @return the resource set into which it is loaded
+	 * @throws IOException on failure to load the {@code file}
+	 */
+	protected ResourceSet loadModel(IFile file) throws IOException {
+		final ResourceSet result = new ResourceSetImpl();
+
+		result.getResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true), true);
+
+		return result;
+	}
+
+	/**
+	 * Obtain the model object to be validated from the loaded resource set.
+	 *
+	 * @param resourceSet the loaded resource set
+	 * @return the model object to validate, or {@code null} if there is none
+	 *
+	 * @see #loadModel(IFile)
+	 */
+	protected EObject getModel(ResourceSet resourceSet) {
+		EObject result = null;
+
+		final Resource resource = resourceSet.getResources().isEmpty() ? null : resourceSet.getResources().get(0);
+		if (resource != null && !resource.getContents().isEmpty()) {
+			result = resource.getContents().get(0);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Configure the validation service with constraint providers, filters, or whatever else
+	 * is necessary for complete and correct validation of the {@code model}.
+	 *
+	 * @param validationService the validation service to configure
+	 * @param resourceSet the resource set in which it will validate the {@code model}
+	 * @param model the model object to be validated
+	 */
+	protected void configure(ValidationService validationService, ResourceSet resourceSet, EObject model) {
+		// Nothing to do
+	}
+
+	/**
+	 * Unload the model after validation is complete.
+	 *
+	 * @param resourceSet the model to unload
+	 *
+	 * @see #loadModel(IFile)
+	 */
+	protected void unload(ResourceSet resourceSet) {
+		for (final Resource next : resourceSet.getResources()) {
+			next.unload();
+			next.eAdapters().clear();
+		}
+
+		resourceSet.getResources().clear();
+		resourceSet.eAdapters().clear();
+	}
+
+	private static Diagnostic toDiagnostic(Throwable throwable) {
+		String message = throwable.getClass().getName();
+		final int index = message.lastIndexOf('.');
+		if (index >= 0) {
+			message = message.substring(index + 1);
+		}
+		if (throwable.getLocalizedMessage() != null) {
+			message = message + ": " + throwable.getLocalizedMessage();//$NON-NLS-1$
+		}
+
+		final BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR,
+			Activator.PLUGIN_ID,
+			0,
+			message,
+			new Object[] { throwable });
+
+		if (throwable.getCause() != null && throwable.getCause() != throwable) {
+			throwable = throwable.getCause();
+			basicDiagnostic.add(toDiagnostic(throwable));
+		}
+
+		return basicDiagnostic;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/Activator.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/Activator.java
new file mode 100644
index 0000000..97f6d3f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/Activator.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emfforms.ide.builder.MarkerHelperProvider;
+import org.eclipse.emfforms.ide.builder.ValidationDelegateProvider;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+import org.osgi.util.tracker.ServiceTracker;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends AbstractUIPlugin {
+
+	/** plug-in ID. */
+	public static final String PLUGIN_ID = "org.eclipse.emfforms.ide.builder"; //$NON-NLS-1$
+
+	/** Shared instance. */
+	private static Activator plugin;
+
+	private ServiceTracker<ValidationDelegateProvider, ValidationDelegateProvider> validationDelegateProviders;
+	private ServiceTracker<MarkerHelperProvider, MarkerHelperProvider> markerHelperProviders;
+
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+
+		validationDelegateProviders = new ServiceTracker<ValidationDelegateProvider, ValidationDelegateProvider>(
+			context, ValidationDelegateProvider.class, null);
+		validationDelegateProviders.open();
+
+		markerHelperProviders = new ServiceTracker<MarkerHelperProvider, MarkerHelperProvider>(
+			context, MarkerHelperProvider.class, null);
+		markerHelperProviders.open();
+	}
+
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		markerHelperProviders.close();
+		validationDelegateProviders.close();
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns an image descriptor for the image file at the given
+	 * plug-in relative path.
+	 *
+	 * @param path the path
+	 * @return the image descriptor
+	 */
+	public static ImageDescriptor getImageDescriptor(String path) {
+		return imageDescriptorFromPlugin(PLUGIN_ID, path);
+	}
+
+	/**
+	 * Logs an exception for this plugin.
+	 *
+	 * @param message the specific message to log
+	 * @param t throwable causing this log
+	 */
+	public static void log(String message, Throwable t) {
+		getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, message, t));
+
+	}
+
+	/**
+	 * Obtain the currently registered validation delegate providers.
+	 *
+	 * @return the validation delegate providers
+	 */
+	public Collection<ValidationDelegateProvider> getValidationDelegateProviders() {
+		final ValidationDelegateProvider[] result = {};
+		return Arrays.asList(validationDelegateProviders.getServices(result));
+	}
+
+	/**
+	 * Obtain the currently registered marker helper providers.
+	 *
+	 * @return the marker helper providers
+	 */
+	public Collection<MarkerHelperProvider> getMarkerHelperProviders() {
+		final MarkerHelperProvider[] result = {};
+		return Arrays.asList(markerHelperProviders.getServices(result));
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/AddRemoveProjectNatureHandler.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/AddRemoveProjectNatureHandler.java
new file mode 100644
index 0000000..6f69651
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/AddRemoveProjectNatureHandler.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+/**
+ * Add/Remove handler for the View model projects nature.
+ */
+public class AddRemoveProjectNatureHandler extends AbstractHandler {
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		final ISelection selection = HandlerUtil.getCurrentSelection(event);
+		String natureID = event.getParameter("natureID");
+		if (natureID == null) {
+			// Default to view model nature
+			natureID = ViewModelNature.NATURE_ID;
+		}
+
+		//
+		if (selection instanceof IStructuredSelection) {
+			for (final Iterator<?> it = ((IStructuredSelection) selection).iterator(); it
+				.hasNext();) {
+				final Object element = it.next();
+				IProject project = null;
+				if (element instanceof IProject) {
+					project = (IProject) element;
+				} else if (element instanceof IAdaptable) {
+					project = ((IAdaptable) element).getAdapter(IProject.class);
+				}
+				if (project != null) {
+					try {
+						ProjectNature.toggleNature(project, natureID);
+					} catch (final CoreException e) {
+						Activator.log("Failed to toggle nature", e);
+						throw new ExecutionException("Failed to toggle nature",
+							e);
+					}
+				}
+			}
+		}
+
+		return null;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ProjectNature.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ProjectNature.java
new file mode 100644
index 0000000..ccddbe3
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ProjectNature.java
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+import org.eclipse.core.resources.ICommand;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IProjectNature;
+import org.eclipse.core.runtime.CoreException;
+
+/**
+ * Common project nature implementation.
+ */
+public abstract class ProjectNature implements IProjectNature {
+
+	private final String id;
+	private final String builder;
+	private IProject project;
+
+	/**
+	 * Initializes me with my unique identifier and builder ID.
+	 *
+	 * @param id my unique identifier
+	 * @param builder my builder
+	 */
+	protected ProjectNature(String id, String builder) {
+		super();
+
+		this.id = id;
+		this.builder = builder;
+	}
+
+	@Override
+	public void configure() throws CoreException {
+		if (builder == null) {
+			// Nothing to configure;
+			return;
+		}
+
+		final IProjectDescription desc = project.getDescription();
+		final ICommand[] commands = desc.getBuildSpec();
+
+		for (int i = 0; i < commands.length; ++i) {
+			if (commands[i].getBuilderName().equals(builder)) {
+				return;
+			}
+		}
+
+		final ICommand[] newCommands = new ICommand[commands.length + 1];
+		System.arraycopy(commands, 0, newCommands, 0, commands.length);
+		final ICommand command = desc.newCommand();
+		command.setBuilderName(builder);
+		newCommands[newCommands.length - 1] = command;
+		desc.setBuildSpec(newCommands);
+		project.setDescription(desc, null);
+	}
+
+	@Override
+	public void deconfigure() throws CoreException {
+		if (builder == null) {
+			// Nothing to deconfigure;
+			return;
+		}
+
+		final IProjectDescription description = getProject().getDescription();
+		final ICommand[] commands = description.getBuildSpec();
+		for (int i = 0; i < commands.length; ++i) {
+			if (commands[i].getBuilderName().equals(builder)) {
+				final ICommand[] newCommands = new ICommand[commands.length - 1];
+				System.arraycopy(commands, 0, newCommands, 0, i);
+				System.arraycopy(commands, i + 1, newCommands, i,
+					commands.length - i - 1);
+				description.setBuildSpec(newCommands);
+				project.setDescription(description, null);
+				return;
+			}
+		}
+	}
+
+	@Override
+	public IProject getProject() {
+		return project;
+	}
+
+	@Override
+	public void setProject(IProject project) {
+		this.project = project;
+	}
+
+	/**
+	 * Query whether a {@code project} has my nature.
+	 *
+	 * @param project a project
+	 * @return whether it has my nature
+	 */
+	public boolean hasNature(IProject project) {
+		try {
+			return project.hasNature(id);
+		} catch (final CoreException e) {
+			// It doesn't have our nature, then
+			return false;
+		}
+	}
+
+	/**
+	 * Toggles a nature on a project.
+	 *
+	 * @param project
+	 *            to have sample nature added or removed
+	 * @param natureID the nature ID to toggle
+	 * @throws CoreException issue while toggling nature
+	 */
+	public static void toggleNature(IProject project, String natureID) throws CoreException {
+		final IProjectDescription description = project.getDescription();
+		final String[] natures = description.getNatureIds();
+
+		for (int i = 0; i < natures.length; ++i) {
+			if (natureID.equals(natures[i])) {
+				// Remove the nature
+				final String[] newNatures = new String[natures.length - 1];
+				System.arraycopy(natures, 0, newNatures, 0, i);
+				System.arraycopy(natures, i + 1, newNatures, i, natures.length - i - 1);
+				description.setNatureIds(newNatures);
+				project.setDescription(description, null);
+				return;
+			}
+		}
+
+		// Add the nature
+		final String[] newNatures = new String[natures.length + 1];
+		System.arraycopy(natures, 0, newNatures, 0, natures.length);
+		newNatures[natures.length] = natureID;
+		description.setNatureIds(newNatures);
+		project.setDescription(description, null);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ValidationBuilder.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ValidationBuilder.java
new file mode 100644
index 0000000..2608b87
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ValidationBuilder.java
@@ -0,0 +1,343 @@
+/*******************************************************************************
+ * Copyright (c) 2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.IResourceVisitor;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emfforms.bazaar.Bazaar;
+import org.eclipse.emfforms.bazaar.BazaarContext;
+import org.eclipse.emfforms.bazaar.Vendor;
+import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.ide.builder.BuilderConstants;
+import org.eclipse.emfforms.ide.builder.MarkerHelperProvider;
+import org.eclipse.emfforms.ide.builder.ValidationDelegate;
+import org.eclipse.emfforms.ide.builder.ValidationDelegateProvider;
+
+/**
+ * Incremental builder that triggers validation on view models in the workspace.
+ */
+public class ValidationBuilder extends IncrementalProjectBuilder {
+
+	/** identifier of the builder, similar to plugin.xml value. */
+	public static final String BUILDER_ID = "org.eclipse.emfforms.ide.builder.validationBuilder"; //$NON-NLS-1$
+
+	/** identifier of the marker, similar to plugin.xml value. */
+	public static final String MARKER_ID = "org.eclipse.emfforms.ide.builder.ValidationProblem"; //$NON-NLS-1$
+
+	/**
+	 * Initializes me.
+	 */
+	public ValidationBuilder() {
+		super();
+	}
+
+	private final EditUIMarkerHelper projectMarkerHelper = new EditUIMarkerHelper() {
+		@Override
+		protected String getMarkerID() {
+			return MARKER_ID;
+		}
+	};
+
+	@Override
+	protected IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor)
+		throws CoreException {
+
+		if (kind == FULL_BUILD) {
+			fullBuild(monitor);
+		} else {
+			final IResourceDelta delta = getDelta(getProject());
+			if (delta == null) {
+				fullBuild(monitor);
+			} else {
+				incrementalBuild(delta, monitor);
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Create the core bazaar builder for a bazaar that has a default vendor.
+	 * The default vendor should lose all auctions in which it is not the only bidder.
+	 *
+	 * @param <T> the product type of the bazaar
+	 * @param defaultVendor the default vendor of the bazaar's product type
+	 * @return the bazaar builder
+	 */
+	protected <T> Bazaar.Builder<T> createBazaarBuilder(Vendor<? extends T> defaultVendor) {
+		return Bazaar.Builder.<T> empty().add(defaultVendor);
+	}
+
+	/**
+	 * Configure the validation delegate bazaar builder. Subclasses may extend or override
+	 * to add vendors or context functions.
+	 *
+	 * @param bazaarBuilder the validation delegate bazaar builder
+	 * @return the same {@code bazaarBuilder}
+	 */
+	protected Bazaar.Builder<ValidationDelegate> configureValidation(Bazaar.Builder<ValidationDelegate> bazaarBuilder) {
+		bazaarBuilder.addAll(Activator.getDefault().getValidationDelegateProviders());
+		return bazaarBuilder;
+	}
+
+	/**
+	 * Configure the marker helper bazaar builder. Subclasses may extend or override
+	 * to add vendors or context functions.
+	 *
+	 * @param bazaarBuilder the marker helper bazaar builder
+	 * @return the same {@code bazaarBuilder}
+	 */
+	protected Bazaar.Builder<MarkerHelper> configureMarkers(Bazaar.Builder<MarkerHelper> bazaarBuilder) {
+		bazaarBuilder.addAll(Activator.getDefault().getMarkerHelperProviders());
+		return bazaarBuilder;
+	}
+
+	@Override
+	protected void clean(IProgressMonitor monitor) throws CoreException {
+		// delete markers set and files created
+		getProject().deleteMarkers(MARKER_ID, true, IResource.DEPTH_INFINITE);
+	}
+
+	/**
+	 * Runs a full build on the project.
+	 *
+	 * @param monitor the progress monitor to track the build
+	 * @throws CoreException exception in case of issues
+	 */
+	protected void fullBuild(final IProgressMonitor monitor) throws CoreException {
+		try {
+			getProject().accept(new ResourceValidationVisitor(monitor));
+		} catch (final CoreException e) {
+			Activator.log("Error running full build", e);//$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Runs an incremental build on the project.
+	 *
+	 * @param delta the delta on the resource that triggers this incremental build
+	 * @param monitor the progress monitor to track the build
+	 * @throws CoreException exception in case of issues
+	 */
+	protected void incrementalBuild(IResourceDelta delta,
+		IProgressMonitor monitor) throws CoreException {
+		// the visitor does the work.
+		delta.accept(new DeltaValidationVisitor(monitor));
+	}
+
+	/**
+	 * Create the bazaar vendor injection context for a {@code file}.
+	 *
+	 * @param file a file to be validated
+	 * @return the injection context
+	 */
+	protected BazaarContext createContext(IFile file) {
+		final BazaarContext.Builder result = BazaarContext.Builder.empty();
+		result.put(IFile.class, file);
+
+		// We have to compute this a priori because if we try to do it on demand
+		// via a context function, then for any file that does not have a content
+		// type, we will end up injecting nulls instead of failing to resolve the
+		// injection, which is what we would prefer. Returning IInjector.NOT_A_VALUE
+		// from a context function always ultimately results in a null anyways
+		final IContentType contentType = getContentType(file);
+		if (contentType != null) {
+			result.put(IContentType.class, contentType);
+			result.put(BuilderConstants.CONTENT_TYPE, contentType.getId());
+		}
+
+		return result.build();
+	}
+
+	/**
+	 * Get the content-type of a {@code file}.
+	 *
+	 * @param file a file
+	 * @return the content type, or {@code null} if it cannot be determined for some reason
+	 */
+	protected IContentType getContentType(IFile file) {
+		IContentType result;
+		try {
+			final IContentDescription contentDescription = file.getContentDescription();
+			result = contentDescription == null ? null : contentDescription.getContentType();
+		} catch (final CoreException e) {
+			// Unavailable or out of sync? Not interesting to validate it
+			result = null;
+		}
+
+		return result;
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Resource visitor for full-build validation.
+	 */
+	abstract class ValidationVisitor {
+
+		private final IProgressMonitor monitor;
+		private final Bazaar<ValidationDelegate> delegateBazaar;
+		private final Bazaar<MarkerHelper> markerHelperBazaar;
+
+		/**
+		 * Constructor.
+		 *
+		 * @param monitor the progress monitor
+		 */
+		ValidationVisitor(IProgressMonitor monitor) {
+			this.monitor = monitor;
+
+			delegateBazaar = configureValidation(createBazaarBuilder(ValidationDelegateProvider.NULL))
+				.build();
+			markerHelperBazaar = configureMarkers(createBazaarBuilder(MarkerHelperProvider.DEFAULT))
+				.build();
+		}
+
+		/**
+		 * Validate a {@code file}.
+		 *
+		 * @param file the file validate
+		 * @param context the bazaar context for injection to find a validation delegate
+		 * @param monitor the progress monitor
+		 */
+		void validate(IFile file, BazaarContext context, IProgressMonitor monitor) {
+			// We will always at least get the null instance
+			final ValidationDelegate delegate = delegateBazaar.createProduct(context);
+
+			final SubMonitor sub = SubMonitor.convert(monitor, 1);
+			try {
+				final Optional<Diagnostic> diagnostics = delegate.validate(file, sub.newChild(1));
+
+				if (diagnostics.isPresent()) {
+					final Diagnostic diagnostic = diagnostics.get();
+					projectMarkerHelper.deleteMarkers(file);
+
+					// create markers only if severity >= Warning
+					if (diagnostic.getSeverity() >= IMarker.SEVERITY_WARNING) {
+						final MarkerHelper markerHelper = markerHelperBazaar.createProduct(context);
+						markerHelper.createMarkers(diagnostic);
+					}
+				}
+			} catch (final CoreException ex) {
+				Activator.log("Errors while creating markers on file " + file, ex);//$NON-NLS-1$
+			} finally {
+				sub.done();
+			}
+		}
+
+		/**
+		 * Get the progress monitor.
+		 *
+		 * @return the progress monitor
+		 */
+		final IProgressMonitor getMonitor() {
+			return monitor;
+		}
+
+	}
+
+	/**
+	 * Resource delta visitor for incremental-build validation.
+	 */
+	class DeltaValidationVisitor extends ValidationVisitor implements IResourceDeltaVisitor {
+
+		/**
+		 * Constructor.
+		 *
+		 * @param monitor the progress monitor
+		 */
+		DeltaValidationVisitor(IProgressMonitor monitor) {
+			super(monitor);
+		}
+
+		@Override
+		public boolean visit(IResourceDelta delta) throws CoreException {
+			switch (delta.getKind()) {
+			case IResourceDelta.ADDED:
+			case IResourceDelta.CHANGED:
+				// handle added or changed resource
+				final IResource resource = delta.getResource();
+				switch (resource.getType()) {
+				case IResource.FILE:
+					final IFile file = (IFile) resource;
+					final BazaarContext context = createContext(file);
+					validate(file, context, getMonitor());
+					break;
+				default:
+					// Nothing to do for other kinds of resource
+				}
+				break;
+			case IResourceDelta.REMOVED:
+				// handle removed resource
+				break;
+			default:
+				break;
+			}
+			// return true to continue visiting children.
+			return true;
+		}
+	}
+
+	/**
+	 * Resource visitor for full-build validation.
+	 */
+	class ResourceValidationVisitor extends ValidationVisitor implements IResourceVisitor {
+
+		/**
+		 * Constructor.
+		 *
+		 * @param monitor the progress monitor
+		 */
+		ResourceValidationVisitor(IProgressMonitor monitor) {
+			super(monitor);
+		}
+
+		@Override
+		public boolean visit(IResource resource) {
+			boolean result;
+
+			switch (resource.getType()) {
+			case IResource.FILE:
+				final IFile file = (IFile) resource;
+				final BazaarContext context = createContext(file);
+				validate(file, context, getMonitor());
+				result = false; // No children, anyways
+				break;
+			default:
+				// return true to continue visiting children.
+				result = true;
+				break;
+			}
+
+			return result;
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ValidationNature.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ValidationNature.java
new file mode 100644
index 0000000..99c501d
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ValidationNature.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+/**
+ * Nature for extensible validation of the model files in the project.
+ */
+public class ValidationNature extends ProjectNature {
+
+	/** Project nature identifier. */
+	public static final String NATURE_ID = "org.eclipse.emfforms.ide.builder.validationNature"; //$NON-NLS-1$
+
+	/** A prototype for nature instances. */
+	public static final ValidationNature PROTOTYPE = new ValidationNature();
+
+	/**
+	 * Initializes me.
+	 */
+	public ValidationNature() {
+		super(NATURE_ID, ValidationBuilder.BUILDER_ID);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelBuilder.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelBuilder.java
new file mode 100644
index 0000000..ecd1b9e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelBuilder.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emfforms.bazaar.Bazaar.Builder;
+import org.eclipse.emfforms.ide.builder.ValidationDelegate;
+
+/**
+ * Incremental builder that triggers validation on view models in the workspace.
+ */
+public class ViewModelBuilder extends ValidationBuilder {
+
+	/** identifier of the builder, similar to plugin.xml value. */
+	public static final String BUILDER_ID = "org.eclipse.emfforms.ide.builder.viewModelBuilder"; //$NON-NLS-1$
+
+	@Override
+	protected IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor)
+		throws CoreException {
+
+		// If the validation nature is installed, it covers me
+		if (ValidationNature.PROTOTYPE.hasNature(getProject())) {
+			return null;
+		}
+
+		return super.build(kind, args, monitor);
+	}
+
+	@Override
+	protected void clean(IProgressMonitor monitor) throws CoreException {
+		// If the validation nature is installed, it covers me
+		if (ValidationNature.PROTOTYPE.hasNature(getProject())) {
+			return;
+		}
+
+		super.clean(monitor);
+	}
+
+	@Override
+	protected Builder<ValidationDelegate> configureValidation(Builder<ValidationDelegate> bazaarBuilder) {
+		// Only the view model validation
+		bazaarBuilder.add(new ViewModelValidationDelegate.Provider());
+		return bazaarBuilder;
+	}
+
+	@Override
+	protected Builder<MarkerHelper> configureMarkers(Builder<MarkerHelper> bazaarBuilder) {
+		// Only the view model markers
+		bazaarBuilder.add(new ViewModelMarkerHelper.Provider());
+		return bazaarBuilder;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelMarkerHelper.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelMarkerHelper.java
new file mode 100644
index 0000000..4f73e36
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelMarkerHelper.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * Copyright (c) 2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecp.view.spi.model.util.ViewValidator;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.ide.builder.MarkerHelperProvider;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Specific Marker Helper that directly knows the file.
+ */
+public class ViewModelMarkerHelper extends MarkerHelper {
+	private final IFile file;
+
+	/** identifier of the marker, similar to plugin.xml value. */
+	public static final String MARKER_ID = "org.eclipse.emfforms.ide.builder.ViewModelProblem"; //$NON-NLS-1$
+
+	@Override
+	protected String getMarkerID() {
+		return MARKER_ID;
+	}
+
+	/**
+	 * Constructor.
+	 *
+	 * @param file file being validated
+	 */
+	ViewModelMarkerHelper(IFile file) {
+		this.file = file;
+	}
+
+	@Override
+	public void createMarkers(final Diagnostic diagnostic) throws CoreException {
+		ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
+			@Override
+			public void run(IProgressMonitor monitor) throws CoreException {
+				final int severity = diagnostic.getSeverity();
+				if (severity < Diagnostic.WARNING) {
+					// neither info nor ok markers
+					return;
+				}
+				// no child and severity ok, directly create marker.
+				if (diagnostic.getChildren().isEmpty()) {
+					createMarkers(getFile(diagnostic), diagnostic, null);
+				} else {
+					for (final Diagnostic child : diagnostic.getChildren()) {
+						// retrieve the most relevant child to get the right message: most relevant is a child
+						// diagnostic with the ECP diagnostic specific source and the right severity
+						final Diagnostic relevant = extractRelevantDiagnostic(child);
+						createMarkers(getFile(diagnostic), relevant, diagnostic);
+					}
+				}
+
+			}
+		},
+			null);
+	}
+
+	private Diagnostic extractRelevantDiagnostic(Diagnostic parentDiagnostic) {
+		if (parentDiagnostic.getSeverity() == 0 || parentDiagnostic.getChildren().isEmpty()) {
+			return parentDiagnostic;
+		}
+
+		// try to get the most relevant => the one with highest severity, and the ECP validation source among the
+		// children with highest severity
+		Diagnostic result = parentDiagnostic.getChildren().get(0);
+		int currentHighest = result.getSeverity();
+		for (final Diagnostic child : parentDiagnostic.getChildren()) {
+			if (child.getSeverity() > currentHighest) {
+				currentHighest = child.getSeverity();
+				result = child;
+			} else if (child.getSeverity() == currentHighest
+				&& !ViewValidator.DIAGNOSTIC_SOURCE.equals(result.getSource())
+				&& ViewValidator.DIAGNOSTIC_SOURCE.equals(child.getSource())) {
+				currentHighest = child.getSeverity();
+				result = child;
+			}
+		}
+		return result;
+	}
+
+	@Override
+	protected IFile getFile(Object datum) {
+		if (file != null) {
+			return file;
+		}
+		return super.getFile(datum);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Implementation of the marker helper provider for view model validation.
+	 */
+	@Component
+	public static class Provider implements MarkerHelperProvider {
+
+		/** Standard bid (for view model files). */
+		private static final Double BID = 10.0;
+
+		/** View model file extension. */
+		private static final String VIEW = "view"; //$NON-NLS-1$
+
+		/**
+		 * Bid on view model files.
+		 *
+		 * @param file a file
+		 * @return a bid, if it is a view model file
+		 */
+		@Bid
+		public Double bid(IFile file) {
+			return isViewModelResource(file) ? BID : null;
+		}
+
+		/**
+		 * Create the view model marker helper.
+		 * 
+		 * @param file a view model file
+		 * @return its marker helper
+		 */
+		@Create
+		public MarkerHelper createMarkerHelper(IFile file) {
+			return new ViewModelMarkerHelper(file);
+		}
+
+		private static boolean isViewModelResource(IFile resource) {
+			return VIEW.equals(resource.getFileExtension());
+		}
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelNature.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelNature.java
new file mode 100644
index 0000000..c23cab9
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelNature.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+/**
+ * Nature for the View model projects.
+ */
+public class ViewModelNature extends ProjectNature {
+
+	/** Project nature identifier. */
+	public static final String NATURE_ID = "org.eclipse.emfforms.ide.builder.viewModelNature"; //$NON-NLS-1$
+
+	/** A prototype for nature instances. */
+	public static final ViewModelNature PROTOTYPE = new ViewModelNature();
+
+	/**
+	 * Initializes me.
+	 */
+	public ViewModelNature() {
+		super(NATURE_ID, ViewModelBuilder.BUILDER_ID);
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelValidationDelegate.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelValidationDelegate.java
new file mode 100644
index 0000000..09646b1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/ViewModelValidationDelegate.java
@@ -0,0 +1,197 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder;
+
+import java.io.IOException;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.ide.spi.util.EcoreHelper;
+import org.eclipse.emf.ecp.ide.spi.util.ViewModelHelper;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
+import org.eclipse.emf.ecp.view.spi.model.util.ViewModelPropertiesHelper;
+import org.eclipse.emf.ecp.view.spi.model.util.ViewValidator;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.common.Optional;
+import org.eclipse.emfforms.common.spi.validation.ValidationService;
+import org.eclipse.emfforms.common.spi.validation.filter.AbstractComplexFilter;
+import org.eclipse.emfforms.ide.builder.ValidationDelegate;
+import org.eclipse.emfforms.ide.builder.ValidationDelegateProvider;
+import org.eclipse.emfforms.ide.builder.ValidationServiceDelegate;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * The validation delegate for view models.
+ */
+public class ViewModelValidationDelegate extends ValidationServiceDelegate {
+
+	/**
+	 * Initializes me.
+	 */
+	public ViewModelValidationDelegate() {
+		super();
+	}
+
+	@Override
+	protected ResourceSet loadModel(IFile file) throws IOException {
+		ResourceSet result = null;
+
+		final LinkedHashSet<String> ecores = new LinkedHashSet<String>();
+
+		// load file thanks to ECP helpers to avoid missing Properties
+		final VView view = ViewModelHelper.loadView(file, ecores);
+		final ViewAdapter adapter = new ViewAdapter(view, ecores);
+
+		if (view == null) {
+			adapter.dispose();
+		} else {
+			view.eAdapters().add(adapter);
+
+			result = view.eResource().getResourceSet();
+			result.eAdapters().add(adapter);
+		}
+
+		return result;
+	}
+
+	@Override
+	protected EObject getModel(ResourceSet resourceSet) {
+		return ViewAdapter.getView(resourceSet);
+	}
+
+	@Override
+	protected void configure(ValidationService validationService, ResourceSet resourceSet, EObject model) {
+		super.configure(validationService, resourceSet, model);
+
+		final VView view = (VView) model;
+
+		final VViewModelProperties properties = ViewModelPropertiesHelper.getInhertitedPropertiesOrEmpty(view);
+		view.setLoadingProperties(properties);
+
+		validationService.registerValidationFilter(new ViewValidatorDuplicateFilter());
+	}
+
+	/**
+	 * Filter to avoid duplications in validation from {@link ViewValidator}.
+	 */
+	private class ViewValidatorDuplicateFilter extends AbstractComplexFilter {
+		@Override
+		public boolean skipSubtree(EObject eObject, Optional<Diagnostic> diagnostic) {
+			return false;
+		}
+
+		@Override
+		public boolean skipValidation(EObject eObject) {
+			return VDomainModelReference.class.isInstance(eObject);
+		}
+
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Implementation of the validation delegate provider for view model validation.
+	 */
+	@Component
+	public static class Provider implements ValidationDelegateProvider {
+
+		/** Standard bid (for view model files). */
+		private static final Double BID = 10.0;
+
+		/** View model file extension. */
+		private static final String VIEW = "view"; //$NON-NLS-1$
+
+		/**
+		 * Bid on view model files.
+		 *
+		 * @param file a file
+		 * @return a bid, if it is a view model file
+		 */
+		@Bid
+		public Double bid(IFile file) {
+			return isViewModelResource(file) ? BID : null;
+		}
+
+		/**
+		 * Create the view model validation delegate.
+		 *
+		 * @return the view model validation delegate
+		 */
+		@Create
+		public ValidationDelegate createValidationDelegate() {
+			return new ViewModelValidationDelegate();
+		}
+
+		private static boolean isViewModelResource(IFile resource) {
+			return VIEW.equals(resource.getFileExtension());
+		}
+
+	}
+
+	/**
+	 * An adapter that just attaches the list of registered Ecore paths
+	 * to the model to find after validation for deregistration.
+	 */
+	private static final class ViewAdapter extends AdapterImpl {
+		private final Set<String> ecores;
+		private final VView view;
+
+		ViewAdapter(VView view, Set<String> ecores) {
+			super();
+
+			this.view = view;
+			this.ecores = ecores;
+		}
+
+		@Override
+		public boolean isAdapterForType(Object type) {
+			return type == VView.class || type == ViewAdapter.class;
+		}
+
+		@Override
+		public void unsetTarget(Notifier oldTarget) {
+			super.unsetTarget(oldTarget);
+
+			dispose();
+		}
+
+		VView getView() {
+			return view;
+		}
+
+		void dispose() {
+			for (final String registeredEcore : ecores) {
+				EcoreHelper.unregisterEcore(registeredEcore);
+			}
+			ecores.clear();
+		}
+
+		static VView getView(ResourceSet resourceSet) {
+			final ViewAdapter adapter = (ViewAdapter) EcoreUtil.getExistingAdapter(resourceSet, ViewAdapter.class);
+			return adapter == null ? null : adapter.getView();
+		}
+
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/messages/Messages.java b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/messages/Messages.java
new file mode 100644
index 0000000..de4f62c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/messages/Messages.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.internal.builder.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * Messages internationalization.
+ *
+ * @since 1.20
+ *
+ * @generated
+ */
+public final class Messages extends NLS {
+
+	private static final String BUNDLE_NAME = "org.eclipse.emfforms.ide.internal.builder.messages.messages"; //$NON-NLS-1$
+
+	public static String ViewModelBuilder_Subtask_Label;
+
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/messages/messages.properties b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/messages/messages.properties
new file mode 100644
index 0000000..4b3bc25
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.builder/src/org/eclipse/emfforms/ide/internal/builder/messages/messages.properties
@@ -0,0 +1 @@
+ViewModelBuilder_Subtask_Label=Checking {0}
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.checkstyle b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESMCheckstyle" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyle" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.classpath b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.classpath
new file mode 100644
index 0000000..4c62a80
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.gitignore b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.gitignore
new file mode 100644
index 0000000..f8d886b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.gitignore
@@ -0,0 +1,2 @@
+/bin
+/bin/
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.project b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.project
new file mode 100644
index 0000000..fe1b48a
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.datatemplate.builder</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..654749b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,420 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8bc4bb4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..99a6646
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.emfforms.ide.datatemplate.builder;singleton:=true
+Bundle-Version: 1.20.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.12.0,4.0.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emfforms.datatemplate.model;bundle-version="[1.20.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Automatic-Module-Name: org.eclipse.emfforms.ide.datatemplate.builder
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.ide.datatemplate.internal.builder;version="1.20.0";x-internal:=true
+Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Service-Component: OSGI-INF/org.eclipse.emfforms.ide.datatemplate.internal.builder.DataTemplateValidationDelegateProvider.xml
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..08e03e8
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.emfforms.ide.builder
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = EMFForms IDE Data Template Builder
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/OSGI-INF/org.eclipse.emfforms.ide.datatemplate.internal.builder.DataTemplateValidationDelegateProvider.xml b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/OSGI-INF/org.eclipse.emfforms.ide.datatemplate.internal.builder.DataTemplateValidationDelegateProvider.xml
new file mode 100644
index 0000000..a32d77b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/OSGI-INF/org.eclipse.emfforms.ide.datatemplate.internal.builder.DataTemplateValidationDelegateProvider.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.ide.datatemplate.internal.builder.DataTemplateValidationDelegateProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.ide.builder.ValidationDelegateProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.ide.datatemplate.internal.builder.DataTemplateValidationDelegateProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/about.html b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2007</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/build.properties b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/build.properties
new file mode 100644
index 0000000..d116963
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               OSGI-INF/,\
+               about.html,\
+               .
+jre.compilation.profile = JavaSE-1.6
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/pom.xml b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/pom.xml
new file mode 100644
index 0000000..a351617
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.emf.ecp</groupId>
+    <artifactId>ecp-bundles-parent</artifactId>
+    <version>1.20.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.ecp</groupId>
+  <artifactId>org.eclipse.emfforms.ide.datatemplate.builder</artifactId>
+  <version>1.20.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.ide.datatemplate.builder/src/org/eclipse/emfforms/ide/datatemplate/internal/builder/DataTemplateValidationDelegateProvider.java b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/src/org/eclipse/emfforms/ide/datatemplate/internal/builder/DataTemplateValidationDelegateProvider.java
new file mode 100644
index 0000000..d1d899e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.datatemplate.builder/src/org/eclipse/emfforms/ide/datatemplate/internal/builder/DataTemplateValidationDelegateProvider.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.datatemplate.internal.builder;
+
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.bazaar.Precondition;
+import org.eclipse.emfforms.bazaar.StaticBid;
+import org.eclipse.emfforms.datatemplate.DataTemplatePackage;
+import org.eclipse.emfforms.ide.builder.BuilderConstants;
+import org.eclipse.emfforms.ide.builder.ValidationDelegate;
+import org.eclipse.emfforms.ide.builder.ValidationDelegateProvider;
+import org.eclipse.emfforms.ide.builder.ValidationServiceDelegate;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Validation delegate provider for data template models.
+ */
+@Component
+@StaticBid(bid = 10.0)
+@Precondition(key = BuilderConstants.CONTENT_TYPE, value = DataTemplatePackage.eCONTENT_TYPE)
+public class DataTemplateValidationDelegateProvider implements ValidationDelegateProvider {
+
+	/**
+	 * Initializes me.
+	 */
+	public DataTemplateValidationDelegateProvider() {
+		super();
+	}
+
+	/**
+	 * Create the validation delegate.
+	 *
+	 * @return the validation delegate
+	 */
+	@Create
+	public ValidationDelegate createValidationDelegate() {
+		return new ValidationServiceDelegate();
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.checkstyle b/bundles/org.eclipse.emfforms.ide.ecore.builder/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESMCheckstyle" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyle" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.classpath b/bundles/org.eclipse.emfforms.ide.ecore.builder/.classpath
new file mode 100644
index 0000000..4c62a80
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.gitignore b/bundles/org.eclipse.emfforms.ide.ecore.builder/.gitignore
new file mode 100644
index 0000000..f8d886b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.gitignore
@@ -0,0 +1,2 @@
+/bin
+/bin/
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.project b/bundles/org.eclipse.emfforms.ide.ecore.builder/.project
new file mode 100644
index 0000000..83da7f7
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.ecore.builder</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..654749b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,420 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8bc4bb4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.ecore.builder/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b6aaed6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.emfforms.ide.ecore.builder;singleton:=true
+Bundle-Version: 1.20.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.12.0,4.0.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Automatic-Module-Name: org.eclipse.emfforms.ide.ecore.builder
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.ide.ecore.internal.builder;version="1.20.0";x-internal:=true
+Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Service-Component: OSGI-INF/org.eclipse.emfforms.ide.ecore.internal.builder.EcoreValidationDelegateProvider.xml
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emfforms.ide.ecore.builder/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..e1ec65c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.emfforms.ide.builder
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = EMFForms IDE Ecore Builder
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/OSGI-INF/org.eclipse.emfforms.ide.ecore.internal.builder.EcoreValidationDelegateProvider.xml b/bundles/org.eclipse.emfforms.ide.ecore.builder/OSGI-INF/org.eclipse.emfforms.ide.ecore.internal.builder.EcoreValidationDelegateProvider.xml
new file mode 100644
index 0000000..8c63516
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/OSGI-INF/org.eclipse.emfforms.ide.ecore.internal.builder.EcoreValidationDelegateProvider.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.ide.ecore.internal.builder.EcoreValidationDelegateProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.ide.builder.ValidationDelegateProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.ide.ecore.internal.builder.EcoreValidationDelegateProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/about.html b/bundles/org.eclipse.emfforms.ide.ecore.builder/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2007</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/build.properties b/bundles/org.eclipse.emfforms.ide.ecore.builder/build.properties
new file mode 100644
index 0000000..d116963
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               OSGI-INF/,\
+               about.html,\
+               .
+jre.compilation.profile = JavaSE-1.6
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/pom.xml b/bundles/org.eclipse.emfforms.ide.ecore.builder/pom.xml
new file mode 100644
index 0000000..0b5bfec
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.emf.ecp</groupId>
+    <artifactId>ecp-bundles-parent</artifactId>
+    <version>1.20.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.ecp</groupId>
+  <artifactId>org.eclipse.emfforms.ide.ecore.builder</artifactId>
+  <version>1.20.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.ide.ecore.builder/src/org/eclipse/emfforms/ide/ecore/internal/builder/EcoreValidationDelegateProvider.java b/bundles/org.eclipse.emfforms.ide.ecore.builder/src/org/eclipse/emfforms/ide/ecore/internal/builder/EcoreValidationDelegateProvider.java
new file mode 100644
index 0000000..d226ab2
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.ecore.builder/src/org/eclipse/emfforms/ide/ecore/internal/builder/EcoreValidationDelegateProvider.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.ecore.internal.builder;
+
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.bazaar.Precondition;
+import org.eclipse.emfforms.bazaar.StaticBid;
+import org.eclipse.emfforms.ide.builder.BuilderConstants;
+import org.eclipse.emfforms.ide.builder.ValidationDelegate;
+import org.eclipse.emfforms.ide.builder.ValidationDelegateProvider;
+import org.eclipse.emfforms.ide.builder.ValidationServiceDelegate;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Validation delegate provider for Ecore models.
+ */
+@Component
+@StaticBid(bid = 10.0)
+@Precondition(key = BuilderConstants.CONTENT_TYPE, value = EcorePackage.eCONTENT_TYPE)
+public class EcoreValidationDelegateProvider implements ValidationDelegateProvider {
+
+	/**
+	 * Initializes me.
+	 */
+	public EcoreValidationDelegateProvider() {
+		super();
+	}
+
+	/**
+	 * Create the validation delegate.
+	 *
+	 * @return the validation delegate
+	 */
+	@Create
+	public ValidationDelegate createValidationDelegate() {
+		return new ValidationServiceDelegate();
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.checkstyle b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.checkstyle
new file mode 100644
index 0000000..19c5477
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESMCheckstyle" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyle.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyle" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.classpath b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.classpath
new file mode 100644
index 0000000..4c62a80
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.gitignore b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.gitignore
new file mode 100644
index 0000000..f8d886b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.gitignore
@@ -0,0 +1,2 @@
+/bin
+/bin/
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.project b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.project
new file mode 100644
index 0000000..41a9caa
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.viewtemplate.builder</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..654749b
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,420 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8bc4bb4
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..47d0f95
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.emfforms.ide.viewtemplate.builder;singleton:=true
+Bundle-Version: 1.20.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.12.0,4.0.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Automatic-Module-Name: org.eclipse.emfforms.ide.viewtemplate.builder
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.ide.viewtemplate.internal.builder;version="1.20.0";x-internal:=true
+Import-Package: org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+Service-Component: OSGI-INF/org.eclipse.emfforms.ide.viewtemplate.internal.builder.ViewTemplateValidationDelegateProvider.xml
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..6f6837c
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.emfforms.ide.builder
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = EMFForms IDE View Template Builder
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/OSGI-INF/org.eclipse.emfforms.ide.viewtemplate.internal.builder.ViewTemplateValidationDelegateProvider.xml b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/OSGI-INF/org.eclipse.emfforms.ide.viewtemplate.internal.builder.ViewTemplateValidationDelegateProvider.xml
new file mode 100644
index 0000000..9c82ed1
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/OSGI-INF/org.eclipse.emfforms.ide.viewtemplate.internal.builder.ViewTemplateValidationDelegateProvider.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.emfforms.ide.viewtemplate.internal.builder.ViewTemplateValidationDelegateProvider">
+   <service>
+      <provide interface="org.eclipse.emfforms.ide.builder.ValidationDelegateProvider"/>
+   </service>
+   <implementation class="org.eclipse.emfforms.ide.viewtemplate.internal.builder.ViewTemplateValidationDelegateProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/about.html b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2007</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/build.properties b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/build.properties
new file mode 100644
index 0000000..107e94e
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               OSGI-INF/,\
+               about.html,\
+               .
+jre.compilation.profile = JavaSE-1.6
+src.includes = about.html
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/pom.xml b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/pom.xml
new file mode 100644
index 0000000..6580a33
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/pom.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.emf.ecp</groupId>
+    <artifactId>ecp-bundles-parent</artifactId>
+    <version>1.20.0-SNAPSHOT</version>
+    <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
+  </parent>
+  <groupId>org.eclipse.emf.ecp</groupId>
+  <artifactId>org.eclipse.emfforms.ide.viewtemplate.builder</artifactId>
+  <version>1.20.0-SNAPSHOT</version>
+  <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/src/org/eclipse/emfforms/ide/viewtemplate/internal/builder/ViewTemplateValidationDelegateProvider.java b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/src/org/eclipse/emfforms/ide/viewtemplate/internal/builder/ViewTemplateValidationDelegateProvider.java
new file mode 100644
index 0000000..69ad724
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.ide.viewtemplate.builder/src/org/eclipse/emfforms/ide/viewtemplate/internal/builder/ViewTemplateValidationDelegateProvider.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.viewtemplate.internal.builder;
+
+import org.eclipse.emf.ecp.view.template.model.VTTemplatePackage;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.bazaar.Precondition;
+import org.eclipse.emfforms.bazaar.StaticBid;
+import org.eclipse.emfforms.ide.builder.BuilderConstants;
+import org.eclipse.emfforms.ide.builder.ValidationDelegate;
+import org.eclipse.emfforms.ide.builder.ValidationDelegateProvider;
+import org.eclipse.emfforms.ide.builder.ValidationServiceDelegate;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Validation delegate provider for view template models.
+ */
+@Component
+@StaticBid(bid = 10.0)
+@Precondition(key = BuilderConstants.CONTENT_TYPE, value = VTTemplatePackage.eCONTENT_TYPE)
+public class ViewTemplateValidationDelegateProvider implements ValidationDelegateProvider {
+
+	/**
+	 * Initializes me.
+	 */
+	public ViewTemplateValidationDelegateProvider() {
+		super();
+	}
+
+	/**
+	 * Create the validation delegate.
+	 *
+	 * @return the validation delegate
+	 */
+	@Create
+	public ValidationDelegate createValidationDelegate() {
+		return new ValidationServiceDelegate();
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
index 0672027..b15d405 100644
--- a/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.localization/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Localization
 Bundle-SymbolicName: org.eclipse.emfforms.localization
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.localization;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.localization;version="1.19.0"
+Export-Package: org.eclipse.emfforms.internal.localization;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.localization;version="1.20.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Service-Component: OSGI-INF/localizationService.xml
-Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.12.0,1.19.0]",
- org.eclipse.emfforms.spi.common.report;version="[1.12.0,1.19.0]",
+Automatic-Module-Name: org.eclipse.emfforms.localization
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.12.0,1.20.0]",
+ org.eclipse.emfforms.spi.common.report;version="[1.12.0,1.20.0]",
  org.eclipse.osgi.service.localization;version="[1.1.0,2.0.0)",
  org.osgi.framework;version="[1.3.0,2.0.0)",
  org.osgi.service.component.annotations;version="1.2.0",
  org.osgi.service.log;version="[1.3.0,2.0.0)"
+Service-Component: OSGI-INF/localizationService.xml
 Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: org.eclipse.emfforms.localization
diff --git a/bundles/org.eclipse.emfforms.localization/pom.xml b/bundles/org.eclipse.emfforms.localization/pom.xml
index 3012970..c4b80d1 100644
--- a/bundles/org.eclipse.emfforms.localization/pom.xml
+++ b/bundles/org.eclipse.emfforms.localization/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.rulerepository.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.rulerepository.model.edit/META-INF/MANIFEST.MF
index 767725b..f452814 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.rulerepository.model.edit/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.rulerepository.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.spi.rulerepository.model.provider.RulerepositoryEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.spi.rulerepository.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.spi.rulerepository.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emfforms.rulerepository.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emfforms.rulerepository.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emfforms.rulerepository.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.rulerepository.model.edit/pom.xml b/bundles/org.eclipse.emfforms.rulerepository.model.edit/pom.xml
index acd1f7b..3303abe 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.model.edit/pom.xml
+++ b/bundles/org.eclipse.emfforms.rulerepository.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emfforms.rulerepository.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.rulerepository.model/META-INF/MANIFEST.MF
index 123d553..55269ee 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.rulerepository.model/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.rulerepository.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.spi.rulerepository.model;version="1.19.0",
-  org.eclipse.emfforms.spi.rulerepository.model.impl;version="1.19.0";x-friends:="org.eclipse.emfforms.rulerepository.model.edit",
-  org.eclipse.emfforms.spi.rulerepository.model.util;version="1.19.0";x-friends:="org.eclipse.emfforms.rulerepository.model.edit"
+Export-Package: org.eclipse.emfforms.spi.rulerepository.model;version="1.20.0",
+ org.eclipse.emfforms.spi.rulerepository.model.impl;version="1.20.0";x-friends:="org.eclipse.emfforms.rulerepository.model.edit",
+ org.eclipse.emfforms.spi.rulerepository.model.util;version="1.20.0";x-friends:="org.eclipse.emfforms.rulerepository.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.rulerepository.model
diff --git a/bundles/org.eclipse.emfforms.rulerepository.model/pom.xml b/bundles/org.eclipse.emfforms.rulerepository.model/pom.xml
index f6d54ce..92c2522 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.rulerepository.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emfforms.rulerepository.tooling/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.rulerepository.tooling/META-INF/MANIFEST.MF
index 2a6e146..96293e7 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.tooling/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.rulerepository.tooling/META-INF/MANIFEST.MF
@@ -2,33 +2,33 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms RuleRepository Tooling
 Bundle-SymbolicName: org.eclipse.emfforms.rulerepository.tooling;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.ui;bundle-version="[3.106.0,4.0.0)",
-  org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emfforms.rulerepository.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.ui;bundle-version="[3.106.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emfforms.rulerepository.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.rulerepository.tooling.RuleRepositoryLinkFeatureControlRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core.di;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.rulerepository.tooling
diff --git a/bundles/org.eclipse.emfforms.rulerepository.tooling/pom.xml b/bundles/org.eclipse.emfforms.rulerepository.tooling/pom.xml
index 1ad4787..6499c90 100644
--- a/bundles/org.eclipse.emfforms.rulerepository.tooling/pom.xml
+++ b/bundles/org.eclipse.emfforms.rulerepository.tooling/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-bundles-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>

   </parent>

 

diff --git a/bundles/org.eclipse.emfforms.setup.base/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.setup.base/META-INF/MANIFEST.MF
index d6f37a6..0a5be5c 100644
--- a/bundles/org.eclipse.emfforms.setup.base/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.setup.base/META-INF/MANIFEST.MF
@@ -2,46 +2,46 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Base Dependencies
 Bundle-SymbolicName: org.eclipse.emfforms.setup.base
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.locale.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.mapping;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.model.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emfspecificservice;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.locale.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.mapping;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.20.0,1.21.0)"
diff --git a/bundles/org.eclipse.emfforms.setup.base/pom.xml b/bundles/org.eclipse.emfforms.setup.base/pom.xml
index 39b80ad..b5915a7 100644
--- a/bundles/org.eclipse.emfforms.setup.base/pom.xml
+++ b/bundles/org.eclipse.emfforms.setup.base/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.categorization.expandbar/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.categorization.expandbar/META-INF/MANIFEST.MF
index d30cceb..388fd78 100644
--- a/bundles/org.eclipse.emfforms.swt.categorization.expandbar/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.categorization.expandbar/META-INF/MANIFEST.MF
@@ -2,33 +2,33 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Categorization renderer using an Expandbar
 Bundle-SymbolicName: org.eclipse.emfforms.swt.categorization.expandbar
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.categorization.expandbar;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.rap.rwt;bundle-version="[3.0.2,4.0.0)",
-  org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.categorization.expandbar;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.rap.rwt;bundle-version="[3.0.2,4.0.0)",
+ org.eclipse.core.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.swt.categorization.expandbar.CategorizationElementExpandBarRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="[1.0.0,2.0.0)",
-  org.eclipse.emf.ecp.edit.internal.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.spi.swt.reporting;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.style.validation.model;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.swt.core.di;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.osgi.framework;version="[1.3.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emf.ecp.edit.internal.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.spi.swt.reporting;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.style.validation.model;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.osgi.framework;version="[1.3.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.swt.categorization.expandbar
diff --git a/bundles/org.eclipse.emfforms.swt.categorization.expandbar/pom.xml b/bundles/org.eclipse.emfforms.swt.categorization.expandbar/pom.xml
index 6a3945c..3f87c16 100644
--- a/bundles/org.eclipse.emfforms.swt.categorization.expandbar/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.categorization.expandbar/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.categorization.expandbar</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.control.multiattribute/META-INF/MANIFEST.MF
index 77c5141..4add935 100644
--- a/bundles/org.eclipse.emfforms.swt.control.multiattribute/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.control.multiattribute/META-INF/MANIFEST.MF
@@ -2,41 +2,42 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Renderer for Multi EAttributes
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.multiattribute;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.view.control.multiattribute;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.view.control.multiattribute.celleditor;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.view.control.multiattribute;version="1.19.0",
-  org.eclipse.emfforms.spi.view.control.multiattribute.celleditor;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.view.control.multiattribute;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.view.control.multiattribute.celleditor;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.view.control.multiattribute;version="1.20.0",
+ org.eclipse.emfforms.spi.view.control.multiattribute.celleditor;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/MultiAttributeRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.core.runtime;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.osgi.util;version="1.1.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+ org.eclipse.core.runtime;version="0.0.0",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.osgi.util;version="1.1.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.swt.control.multiattribute
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml b/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml
index 5c0a9bb..1a6dce7 100644
--- a/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml
+++ b/bundles/org.eclipse.emfforms.swt.control.multiattribute/plugin.xml
@@ -20,6 +20,10 @@
             class="org.eclipse.emf.ecp.edit.internal.swt.table.XmlDateCellEditor"
             tester="org.eclipse.emfforms.internal.view.control.multiattribute.celleditor.XmlDateCellEditorTester">
       </cellEditor>
+      <cellEditor
+            class="org.eclipse.emf.ecp.view.spi.table.swt.EnumCellEditor"
+            tester="org.eclipse.emfforms.internal.view.control.multiattribute.celleditor.EnumCellEditorTester">
+      </cellEditor>
    </extension>
 
 </plugin>
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/pom.xml b/bundles/org.eclipse.emfforms.swt.control.multiattribute/pom.xml
index 54c2391..68fbc56 100644
--- a/bundles/org.eclipse.emfforms.swt.control.multiattribute/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.control.multiattribute/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>
 
   <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/src/org/eclipse/emfforms/internal/view/control/multiattribute/celleditor/EnumCellEditorTester.java b/bundles/org.eclipse.emfforms.swt.control.multiattribute/src/org/eclipse/emfforms/internal/view/control/multiattribute/celleditor/EnumCellEditorTester.java
new file mode 100644
index 0000000..5eeccf6
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.control.multiattribute/src/org/eclipse/emfforms/internal/view/control/multiattribute/celleditor/EnumCellEditorTester.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.internal.view.control.multiattribute.celleditor;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.view.control.multiattribute.celleditor.MultiAttributeSWTRendererCellEditorTester;
+
+/**
+ * Cell editor tester that votes for a cell editor for attributes of {@link EEnum} type.
+ */
+public class EnumCellEditorTester implements MultiAttributeSWTRendererCellEditorTester {
+
+	@Override
+	public double isApplicable(EObject eObject, EAttribute multiAttribute,
+		ViewModelContext viewModelContext) {
+
+		final EDataType dataType = multiAttribute.getEAttributeType();
+
+		if (dataType instanceof EEnum) {
+			return 2.0;
+		}
+
+		return NOT_APPLICABLE;
+	}
+
+}
diff --git a/bundles/org.eclipse.emfforms.swt.control.multiattribute/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer.java b/bundles/org.eclipse.emfforms.swt.control.multiattribute/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer.java
index 1a04fa1..17a561c 100644
--- a/bundles/org.eclipse.emfforms.swt.control.multiattribute/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer.java
+++ b/bundles/org.eclipse.emfforms.swt.control.multiattribute/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -9,6 +9,7 @@
  * Contributors:
  * David Soto Setzke - initial API and implementation
  * Johannes Faltermeier - initial API and implementation
+ * Christian W. Damus - bug 543348
  ******************************************************************************/
 package org.eclipse.emfforms.spi.view.control.multiattribute;
 
@@ -26,6 +27,7 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor;
 import org.eclipse.emf.ecp.view.model.common.edit.provider.CustomReflectiveItemProviderAdapterFactory;
@@ -270,7 +272,85 @@
 
 	@Override
 	protected void applyReadOnly() {
-		applyEnable();
+		// do not let the super method disable the control, so the table is still enabled for sorting for example
+		// when applying read only, all buttons shall be hidden
+		updateButtonVisibility();
+	}
+
+	@Override
+	protected boolean ignoreEnableOnReadOnly() {
+		// always take the enable state into account (read only but enable let the user sort the table content for
+		// example)
+		return false;
+	}
+
+	/**
+	 * Updates button visibility and enablement.
+	 */
+	protected void updateButtons() {
+		updateButtonVisibility();
+		updateButtonEnabling();
+	}
+
+	/**
+	 * Updates the visibility of 'Add', 'Remove', 'Up', 'Down' buttons according to the bound input.
+	 */
+	protected void updateButtonVisibility() {
+		final boolean isVisible = !getVElement().isEffectivelyReadonly();
+
+		if (addButton != null) {
+			addButton.setVisible(isVisible);
+		}
+		if (removeButton != null) {
+			removeButton.setVisible(isVisible);
+		}
+		if (upButton != null) {
+			upButton.setVisible(isVisible);
+		}
+		if (downButton != null) {
+			downButton.setVisible(isVisible);
+		}
+	}
+
+	/**
+	 * Updates the enablement of 'addExisting', 'addNew', 'delete', 'moveUp' and 'moveDown' buttons according to the
+	 * bound input.
+	 */
+	protected void updateButtonEnabling() {
+		final boolean isEnable = getVElement().isEffectivelyEnabled();
+		final int listSize = tableViewer != null ? tableViewer.getTable().getItemCount() : 0;
+		final int selectionIndex = tableViewer != null ? tableViewer.getTable().getSelectionIndex() : -1;
+
+		enableUpButton(isEnable, listSize, selectionIndex);
+		enableDownButton(isEnable, listSize, selectionIndex);
+		enableAddButton(isEnable, listSize, selectionIndex);
+		enableDeleteButton(isEnable, listSize, selectionIndex);
+	}
+
+	private void enableUpButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (upButton != null) {
+			final boolean enabled = baseEnable && listSize > 1 && selectionIndex > 0;
+			upButton.setEnabled(enabled);
+		}
+	}
+
+	private void enableDownButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (downButton != null) {
+			final boolean enabled = baseEnable && listSize > 1 && selectionIndex != -1 && selectionIndex < listSize - 1;
+			downButton.setEnabled(enabled);
+		}
+	}
+
+	private void enableAddButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (addButton != null) {
+			addButton.setEnabled(baseEnable);
+		}
+	}
+
+	private void enableDeleteButton(boolean baseEnable, int listSize, int selectionIndex) {
+		if (removeButton != null) {
+			removeButton.setEnabled(baseEnable && listSize > 0 && selectionIndex != -1);
+		}
 	}
 
 	@Override
@@ -301,6 +381,7 @@
 			final Composite buttonComposite = createButtonComposite(composite, list);
 			GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(false, false).applyTo(buttonComposite);
 			initButtons(list);
+
 		} catch (final DatabindingFailedException ex) {
 			getReportService().report(new RenderingFailedReport(ex));
 			return createErrorLabel(composite, ex);
@@ -426,15 +507,10 @@
 		getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
 			@Override
 			public void selectionChanged(SelectionChangedEvent event) {
-				removeButton.setEnabled(!event.getSelection().isEmpty());
-				if (upButton != null) {
-					upButton.setEnabled(!event.getSelection().isEmpty() && !getVElement().isEffectivelyReadonly());
-				}
-				if (downButton != null) {
-					downButton.setEnabled(!event.getSelection().isEmpty() && !getVElement().isEffectivelyReadonly());
-				}
+				updateButtonEnabling();
 			}
 		});
+		updateButtons();
 	}
 
 	private void createLabelProvider() {
@@ -503,7 +579,13 @@
 	}
 
 	private InternalEObject getInstanceOf(EClass clazz) {
-		return InternalEObject.class.cast(clazz.getEPackage().getEFactoryInstance().create(clazz));
+		EObject tempInstance;
+		if (clazz.isInterface() || clazz.isAbstract() || clazz.getInstanceClass() == null) {
+			tempInstance = new DynamicEObjectImpl(clazz);
+		} else {
+			tempInstance = EcoreUtil.create(clazz);
+		}
+		return InternalEObject.class.cast(tempInstance);
 	}
 
 	private void createContent(Composite composite, IObservableList list) {
@@ -516,6 +598,9 @@
 		final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tableViewer) {
 			@Override
 			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
+				if (getVElement().isEffectivelyReadonly()) {
+					return false;
+				}
 				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
 					|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
 					|| event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR
@@ -588,7 +673,13 @@
 	 */
 	protected Object getValueForNewRow(final EAttribute attribute) {
 		try {
-			Object defaultValue = attribute.getEType().getDefaultValue();
+			Object defaultValue = attribute.getDefaultValue();
+			if (defaultValue == null || !attribute.getEType().isInstance(defaultValue)) {
+				// Use a singular default value, but not a multiple value if that's
+				// what is specified in the model, because we shouldn't add more than
+				// one value
+				defaultValue = attribute.getEType().getDefaultValue();
+			}
 			if (defaultValue == null) {
 				defaultValue = attribute.getEType().getInstanceClass().getConstructor().newInstance();
 			}
@@ -638,21 +729,8 @@
 	 */
 	@Override
 	protected void applyEnable() {
-		if (getAddButton() != null) {
-			getAddButton().setVisible(getVElement().isEffectivelyEnabled() && !getVElement().isEffectivelyReadonly());
-		}
-		if (getRemoveButton() != null) {
-			getRemoveButton()
-				.setVisible(getVElement().isEffectivelyEnabled() && !getVElement().isEffectivelyReadonly());
-		}
-		if (getMoveUpButton() != null) {
-			getMoveUpButton()
-				.setVisible(getVElement().isEffectivelyEnabled() && !getVElement().isEffectivelyReadonly());
-		}
-		if (getMoveDownButton() != null) {
-			getMoveDownButton()
-				.setVisible(getVElement().isEffectivelyEnabled() && !getVElement().isEffectivelyReadonly());
-		}
+		super.applyEnable();
+		updateButtonEnabling();
 	}
 
 	/**
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/META-INF/MANIFEST.MF
index 569186b..52c43d0 100644
--- a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/META-INF/MANIFEST.MF
@@ -2,32 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Text Control with Autocomplete
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.text.autocomplete
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.control.text.autocomplete.viewservice;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer.AutocompleteTextControlSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.fieldassist;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="0.0.0",
-  org.osgi.service.component.annotations;version="0.0.0";resolution:=optional
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.fieldassist;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="0.0.0",
+ org.osgi.service.component.annotations;version="0.0.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.swt.control.text.autocomplete
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/pom.xml b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/pom.xml
index 29ae7c0..dffaf0a 100644
--- a/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.control.text.autocomplete/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.richtext/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.control.text.richtext/META-INF/MANIFEST.MF
index 06031a8..a784d4d 100644
--- a/bundles/org.eclipse.emfforms.swt.control.text.richtext/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.control.text.richtext/META-INF/MANIFEST.MF
@@ -2,29 +2,29 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Rich Text Control
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.text.richtext;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.control.text.richtext.renderer;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.control.text.richtext.renderer;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.102.0,4.0.0)",
-  org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.richtext.renderer;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.control.text.richtext.renderer;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.102.0,4.0.0)",
+ org.eclipse.jface;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.swt.control.text.richtext.renderer.RichTextControlSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="0.0.0",
-  org.osgi.service.component.annotations;version="0.0.0";resolution:=optional
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="0.0.0",
+ org.osgi.service.component.annotations;version="0.0.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.swt.control.text.richtext
diff --git a/bundles/org.eclipse.emfforms.swt.control.text.richtext/pom.xml b/bundles/org.eclipse.emfforms.swt.control.text.richtext/pom.xml
index 0a395a8..4bc235b 100644
--- a/bundles/org.eclipse.emfforms.swt.control.text.richtext/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.control.text.richtext/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.controlgrid/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.controlgrid/META-INF/MANIFEST.MF
index 133ded2..977426d 100644
--- a/bundles/org.eclipse.emfforms.swt.controlgrid/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.controlgrid/META-INF/MANIFEST.MF
@@ -2,26 +2,26 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Control Grid SWT Renderer
 Bundle-SymbolicName: org.eclipse.emfforms.swt.controlgrid
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.controlgrid.renderer;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.19.0"
-Require-Bundle: org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.controlgrid.renderer;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.20.0"
+Require-Bundle: org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/ControlGridSWTRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.swt.core.di;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.service.component.annotations;version="1.2.0";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.swt.controlgrid
diff --git a/bundles/org.eclipse.emfforms.swt.controlgrid/pom.xml b/bundles/org.eclipse.emfforms.swt.controlgrid/pom.xml
index 2973cee..f4711f9 100644
--- a/bundles/org.eclipse.emfforms.swt.controlgrid/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.controlgrid/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.core.di.extension/META-INF/MANIFEST.MF
index 96cf04a..1cf6f68 100644
--- a/bundles/org.eclipse.emfforms.swt.core.di.extension/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: SWT Core DI Extension
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di.extension;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.core.di.extension
 Service-Component: OSGI-INF/emfFormsDIExtensionRendererFactory.xml
diff --git a/bundles/org.eclipse.emfforms.swt.core.di.extension/pom.xml b/bundles/org.eclipse.emfforms.swt.core.di.extension/pom.xml
index bc6d7a4..0899e7a 100644
--- a/bundles/org.eclipse.emfforms.swt.core.di.extension/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.core.di.extension/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.swt.core.di.extension</artifactId>
 <packaging>eclipse-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.core.di/META-INF/MANIFEST.MF
index 749bd9d..17d160d 100644
--- a/bundles/org.eclipse.emfforms.swt.core.di/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.core.di/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core DI
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.di;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.core.di;version="1.19.0"
-Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core.di;version="1.20.0"
+Require-Bundle: org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/emfFormsDIRendererFactory.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emfforms.swt.core.di
diff --git a/bundles/org.eclipse.emfforms.swt.core.di/pom.xml b/bundles/org.eclipse.emfforms.swt.core.di/pom.xml
index 41bba22..a0cbd6e 100644
--- a/bundles/org.eclipse.emfforms.swt.core.di/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.core.di/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.swt.core.di</artifactId>
 <packaging>eclipse-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.core.plugin/META-INF/MANIFEST.MF
index b9168b0..3063727 100644
--- a/bundles/org.eclipse.emfforms.swt.core.plugin/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core Plugin
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.plugin
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.plugin;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.internal.swt.core.plugin;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyAdditionalRendererService.xml,OSGI-INF/org.eclipse.emfforms.internal.swt.core.plugin.LegacyRendererService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.osgi.service.component.annotations;version="[1.0.0,2.0.0)";resolution:=optional
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.osgi.service.component.annotations;version="[1.0.0,2.0.0)";resolution:=optional
 Automatic-Module-Name: org.eclipse.emfforms.swt.core.plugin
diff --git a/bundles/org.eclipse.emfforms.swt.core.plugin/pom.xml b/bundles/org.eclipse.emfforms.swt.core.plugin/pom.xml
index e600d45..a170ceb 100644
--- a/bundles/org.eclipse.emfforms.swt.core.plugin/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.core.plugin/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF
index 5e79c2a..63ab198 100644
--- a/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.core/META-INF/MANIFEST.MF
@@ -2,30 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.core;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.core.data;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.core.layout;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.core.util;version="1.19.0",
-  org.eclipse.emfforms.swt.core;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.core.data;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.core.layout;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.core.ui;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.core.util;version="1.20.0",
+ org.eclipse.emfforms.swt.core;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/rendererFactory.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.view.model.common;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+Import-Package: org.eclipse.emf.ecp.view.model.common;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emfforms.swt.core
diff --git a/bundles/org.eclipse.emfforms.swt.core/pom.xml b/bundles/org.eclipse.emfforms.swt.core/pom.xml
index f5b0c95..8e31162 100644
--- a/bundles/org.eclipse.emfforms.swt.core/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.core/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractSWTRenderer.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractSWTRenderer.java
index 755f53d..3a64c31 100644
--- a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractSWTRenderer.java
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/AbstractSWTRenderer.java
@@ -108,8 +108,7 @@
 						return;
 					}
 					// Always apply enable and read-only if it changed because it might have changed for a parent
-					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Enabled()
-						&& !getVElement().isEffectivelyReadonly()) {
+					if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Enabled()) {
 						applyEnable();
 					} else if (notification.getStructuralFeature() == VViewPackage.eINSTANCE.getElement_Readonly()) {
 						applyReadOnly();
@@ -239,7 +238,7 @@
 			applyVisible();
 		}
 		applyReadOnly();
-		if (!getVElement().isEffectivelyReadonly()) {
+		if (!ignoreEnableOnReadOnly()) {
 			applyEnable();
 		}
 		applyValidation();
@@ -253,6 +252,15 @@
 	}
 
 	/**
+	 * Returns <code>true</code> when read only will always force control to be disabled.
+	 *
+	 * @return <code>true</code> when read only will always force control to be disabled.
+	 */
+	protected boolean ignoreEnableOnReadOnly() {
+		return getVElement().isEffectivelyReadonly();
+	}
+
+	/**
 	 * Renders the passed {@link VElement}.
 	 *
 	 * @param cell the {@link GridCell} of the control to render
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/EMFFormsSWTLayoutDelayed.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/EMFFormsSWTLayoutDelayed.java
index 21721c1..b30d2f1 100644
--- a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/EMFFormsSWTLayoutDelayed.java
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/layout/EMFFormsSWTLayoutDelayed.java
@@ -14,8 +14,14 @@
 import java.util.LinkedHashSet;
 import java.util.Set;
 
+import org.eclipse.emfforms.spi.common.report.AbstractReport;
+import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * This Layout Optimizer caches the incoming layout request for 200ms before triggering the layout.
@@ -28,6 +34,7 @@
 
 	private Set<Composite> requestedLayouts = new LinkedHashSet<Composite>();
 	private Thread thread;
+	private ReportService reportService;
 
 	/**
 	 * <p>
@@ -52,36 +59,54 @@
 			return;
 		}
 		final Display defaultDisplay = Display.getDefault();
-		thread = new Thread(new Runnable() {
-			@Override
-			public void run() {
-				try {
-					Thread.sleep(200);
-				} catch (final InterruptedException ex) {
-					/* silent */
-				}
-				final Set<Composite> toLayout = exchangeRequestedLayouts();
-
-				defaultDisplay.asyncExec(new Runnable() {
-
-					@Override
-					public void run() {
-						for (final Composite composite : toLayout) {
-							if (composite.isDisposed()) {
-								continue;
-							}
-							composite.layout(true, true);
-						}
-						thread = null;
-						layoutDelayed();
-					}
-				});
-
+		thread = new Thread(() -> {
+			try {
+				Thread.sleep(200);
+			} catch (final InterruptedException ex) {
+				/* silent */
 			}
+			final Set<Composite> toLayout = exchangeRequestedLayouts();
+
+			defaultDisplay.asyncExec(() -> {
+				// BEGIN COMPLEX CODE
+				try {
+					for (final Composite composite : toLayout) {
+						if (composite.isDisposed()) {
+							continue;
+						}
+						composite.layout(true, true);
+					}
+				} catch (final Exception ex) {
+					getReportService().report(new AbstractReport(ex, "An exception occurred during re-layouting")); //$NON-NLS-1$
+				} finally {
+					// To avoid memory leaks we need to reset the thread in any case.
+					thread = null;
+					layoutDelayed();
+				}
+				// END COMPLEX CODE
+			});
+
 		});
 		thread.start();
 	}
 
+	private ReportService getReportService() {
+		if (reportService == null) {
+			final Bundle bundle = FrameworkUtil.getBundle(EMFFormsSWTLayoutDelayed.class);
+			if (bundle == null) {
+				return null;
+			}
+			final BundleContext bundleContext = bundle.getBundleContext();
+			if (bundleContext == null) {
+				return null;
+			}
+			final ServiceReference<ReportService> serviceReference = bundleContext
+				.getServiceReference(ReportService.class);
+			reportService = bundleContext.getService(serviceReference);
+		}
+		return reportService;
+	}
+
 	private synchronized Set<Composite> getRequestedLayouts() {
 		return requestedLayouts;
 	}
diff --git a/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/ui/ObjectViewerComparator.java b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/ui/ObjectViewerComparator.java
new file mode 100644
index 0000000..26667cf
--- /dev/null
+++ b/bundles/org.eclipse.emfforms.swt.core/src/org/eclipse/emfforms/spi/swt/core/ui/ObjectViewerComparator.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.swt.core.ui;
+
+import org.eclipse.emfforms.common.TriFunction;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.swt.SWT;
+
+/**
+ * The {@link ObjectViewerComparator} allows to rotate between three sorting states:
+ * <ol>
+ * <li>no sorting
+ * <li>ascending
+ * <li>descending
+ * </ol>
+ * To sort the objects, the comparator applies the configured sorting function to the given objects.
+ *
+ * @author Lucas Koehler
+ * @since 1.20
+ *
+ */
+public class ObjectViewerComparator extends ViewerComparator {
+
+	private static final int NONE = 0;
+	private int direction = NONE;
+	private final TriFunction<Integer, Integer, Object, Object> compareFunction;
+
+	/**
+	 * Creates a new instance.
+	 *
+	 * @param compareFunction The function used to compare objects of the viewer. This tri-function accepts the sorting
+	 *            direction as its first argument and the objects to compare as the following arguments. The sorting
+	 *            directions are: 0 = none, 1 = ascending, 2 = descending
+	 */
+	public ObjectViewerComparator(TriFunction<Integer, Integer, Object, Object> compareFunction) {
+		this.compareFunction = compareFunction;
+		direction = NONE;
+	}
+
+	/** Toggles through the sorting directions: NONE -&gt; UP (ascending) -&gt; DOWN (descending) -&gt; NONE. */
+	public void toggleDirection() {
+		direction = (direction + 1) % 3;
+	}
+
+	/**
+	 * Get the current sorting direction as an SWT constant.
+	 *
+	 * @return SWT.NONE, SWT.UP (ascending), or SWT.DOWN (descending)
+	 */
+	public int getDirection() {
+		switch (direction) {
+		case 0:
+			return SWT.NONE;
+		case 1:
+			return SWT.UP;
+		case 2:
+			return SWT.DOWN;
+		default:
+			return SWT.NONE;
+		}
+
+	}
+
+	@Override
+	public int compare(Viewer viewer, Object e1, Object e2) {
+		return compareFunction.apply(direction, e1, e2);
+	}
+}
diff --git a/bundles/org.eclipse.emfforms.swt.table/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.table/META-INF/MANIFEST.MF
index 36e2b10..697cfad 100644
--- a/bundles/org.eclipse.emfforms.swt.table/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.table/META-INF/MANIFEST.MF
@@ -2,39 +2,39 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table
 Bundle-SymbolicName: org.eclipse.emfforms.swt.table
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.table;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.swt.table.action;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.swt.table.messages;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.swt.table.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.table;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.table.action;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.table.util;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.table;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.table.action;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.table.messages;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.table.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.table;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.table.action;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.table.util;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.table
-Import-Package: org.eclipse.emfforms.spi.localization;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.bindings.keys;version="0.0.0",
-  org.eclipse.jface.databinding.swt;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.dialogs;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.util;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.jface.window;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.dnd;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0"
+Import-Package: org.eclipse.emfforms.spi.localization;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.bindings.keys;version="0.0.0",
+ org.eclipse.jface.databinding.swt;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.dialogs;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.util;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.jface.window;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.dnd;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.swt.table/pom.xml b/bundles/org.eclipse.emfforms.swt.table/pom.xml
index e0c09c3..a937ed6 100644
--- a/bundles/org.eclipse.emfforms.swt.table/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.table/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.table</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/META-INF/MANIFEST.MF
index c4725c8..5e4c72b 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms TreeViewer Validation Decorator using ECP Validation Service
 Bundle-SymbolicName: org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.treemasterdetail.decorator.validation.ecp;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.treemasterdetail.decorator.validation.ecp;version="1.19.0"
+Export-Package: org.eclipse.emfforms.internal.swt.treemasterdetail.decorator.validation.ecp;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.treemasterdetail.decorator.validation.ecp;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default
 Import-Package: org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0"
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/pom.xml b/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/pom.xml
index 1b660bc..ddd29e1 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.swt.treemasterdetail/META-INF/MANIFEST.MF
index 5f95fa4..b38c61d 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/META-INF/MANIFEST.MF
@@ -2,43 +2,43 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Treemasterdetail SWT Util
 Bundle-SymbolicName: org.eclipse.emfforms.swt.treemasterdetail;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.edit.ui.action.emfforms;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.swt.treemasterdetail;version="1.19.0";x-friends:="org.eclipse.emfforms.editor.ecore",
-  org.eclipse.emfforms.internal.swt.treemasterdetail.defaultprovider;version="1.19.0";x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor",
-  org.eclipse.emfforms.spi.swt.treemasterdetail;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.treemasterdetail.actions;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.treemasterdetail.actions.delegating;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.treemasterdetail.diagnostic;version="1.19.0",
-  org.eclipse.emfforms.spi.swt.treemasterdetail.util;version="1.19.0"
+Export-Package: org.eclipse.emf.edit.ui.action.emfforms;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.treemasterdetail;version="1.20.0";x-friends:="org.eclipse.emfforms.editor.ecore",
+ org.eclipse.emfforms.internal.swt.treemasterdetail.defaultprovider;version="1.20.0";x-friends:="org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor",
+ org.eclipse.emfforms.spi.swt.treemasterdetail;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.actions;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.actions.delegating;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.diagnostic;version="1.20.0",
+ org.eclipse.emfforms.spi.swt.treemasterdetail.util;version="1.20.0"
 Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.equinox.registry;bundle-version="[3.3.0,4.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.equinox.registry;bundle-version="[3.3.0,4.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.treemasterdetail
 Import-Package: org.eclipse.core.commands;version="0.0.0",
-  org.eclipse.emf.edit.ui.action;version="0.0.0",
-  org.eclipse.emf.edit.ui.dnd;version="0.0.0",
-  org.eclipse.emf.edit.ui.provider;version="0.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.localization;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.action;version="0.0.0",
-  org.eclipse.jface.databinding.viewers;version="0.0.0",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.resource;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.custom;version="0.0.0",
-  org.eclipse.swt.dnd;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.eclipse.ui.actions;ui.workbench=split;version="0.0.0",
-  org.eclipse.ui.views.properties;ui.views=split;version="0.0.0"
+ org.eclipse.emf.edit.ui.action;version="0.0.0",
+ org.eclipse.emf.edit.ui.dnd;version="0.0.0",
+ org.eclipse.emf.edit.ui.provider;version="0.0.0",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.action;version="0.0.0",
+ org.eclipse.jface.databinding.viewers;version="0.0.0",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.resource;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.custom;version="0.0.0",
+ org.eclipse.swt.dnd;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.eclipse.ui.actions;ui.workbench=split;version="0.0.0",
+ org.eclipse.ui.views.properties;ui.views=split;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/pom.xml b/bundles/org.eclipse.emfforms.swt.treemasterdetail/pom.xml
index 6c1c20b..2c4f06d 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/pom.xml
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.treemasterdetail</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   
   <properties>
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailMenuListener.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailMenuListener.java
index 1a35365..d135bc0 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailMenuListener.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/TreeMasterDetailMenuListener.java
@@ -25,6 +25,7 @@
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateChildAction;
 import org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback;
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
@@ -172,12 +173,27 @@
 				continue;
 			}
 
-			manager.add(new CreateChildAction(eObject, domain, treeViewer, cp, createElementCallback));
+			manager.add(createCreateChildAction(domain, eObject, cp));
 		}
 
 	}
 
 	/**
+	 * Creates a new child creation action based on the given {@link CommandParameter}. Subclasses might override this
+	 * to customize the action creation (e.g. an action's label).
+	 *
+	 * @param domain The {@link EditingDomain} the element is be created with
+	 * @param eObject The parent object the element is added to
+	 * @param cp The {@link CommandParameter} creating the element when executed
+	 * @return The action creating a new child when ran
+	 * @since 1.20
+	 */
+	protected IAction createCreateChildAction(final EditingDomain domain, final EObject eObject,
+		final CommandParameter cp) {
+		return new CreateChildAction(eObject, domain, treeViewer, cp, createElementCallback);
+	}
+
+	/**
 	 * Allows to prevent adding a create child action for the given {@link CommandParameter}.
 	 *
 	 * @param cp the descriptor
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.annotation.model.edit/META-INF/MANIFEST.MF
index d4b2d96..c476a13 100644
--- a/bundles/org.eclipse.emfforms.view.annotation.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.annotation.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.emfforms.spi.view.annotation.model.provider.AnnotationEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emfforms.view.annotation.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emfforms.view.annotation.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model.edit/pom.xml b/bundles/org.eclipse.emfforms.view.annotation.model.edit/pom.xml
index 69c0d12..d36127f 100644
--- a/bundles/org.eclipse.emfforms.view.annotation.model.edit/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.annotation.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.annotation.model/META-INF/MANIFEST.MF
index 1ee4988..3969f43 100644
--- a/bundles/org.eclipse.emfforms.view.annotation.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.annotation.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model;version="1.19.0",
-  org.eclipse.emf.emfforms.spi.view.annotation.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.emfforms.spi.view.annotation.model.util;version="1.19.0";x-friends:="org.eclipse.emfforms.view.annotation.model.edit"
+Export-Package: org.eclipse.emf.emfforms.spi.view.annotation.model;version="1.20.0",
+ org.eclipse.emf.emfforms.spi.view.annotation.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.emfforms.spi.view.annotation.model.util;version="1.20.0";x-friends:="org.eclipse.emfforms.view.annotation.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.view.annotation.model
diff --git a/bundles/org.eclipse.emfforms.view.annotation.model/pom.xml b/bundles/org.eclipse.emfforms.view.annotation.model/pom.xml
index b1d1009..051bd67 100644
--- a/bundles/org.eclipse.emfforms.view.annotation.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.annotation.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/META-INF/MANIFEST.MF
index 8bc4511..0d75570 100644
--- a/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.controlgrid.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.emfforms.spi.view.controlgrid.model.provider.ControlgridEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.view.controlgrid.model.edit
-Import-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;version="[1.19.0,1.20.0)";resolution:=optional,
-  org.eclipse.emf.ecp.view.spi.table.model;version="[1.19.0,1.20.0)";resolution:=optional
+Import-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.model;version="[1.20.0,1.21.0)";resolution:=optional,
+ org.eclipse.emf.ecp.view.spi.table.model;version="[1.20.0,1.21.0)";resolution:=optional
diff --git a/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/pom.xml b/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/pom.xml
index 3186ed2..cce8708 100644
--- a/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.controlgrid.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.controlgrid.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.controlgrid.model/META-INF/MANIFEST.MF
index c5fac00..56ac1fa 100644
--- a/bundles/org.eclipse.emfforms.view.controlgrid.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.controlgrid.model/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.controlgrid.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model;version="1.19.0",
-  org.eclipse.emf.emfforms.spi.view.controlgrid.model.impl;version="1.19.0",
-  org.eclipse.emf.emfforms.spi.view.controlgrid.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model;version="1.20.0",
+ org.eclipse.emf.emfforms.spi.view.controlgrid.model.impl;version="1.20.0",
+ org.eclipse.emf.emfforms.spi.view.controlgrid.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.view.controlgrid.model
diff --git a/bundles/org.eclipse.emfforms.view.controlgrid.model/pom.xml b/bundles/org.eclipse.emfforms.view.controlgrid.model/pom.xml
index bb9dece..caa67a5 100644
--- a/bundles/org.eclipse.emfforms.view.controlgrid.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.controlgrid.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/META-INF/MANIFEST.MF
index c8ebccf..a212edd 100644
--- a/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.indexsegment.model.edit;singleton:=true
-Automatic-Module-Name: org.eclipse.emfforms.view.indexsegment.model.edit
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.spi.view.indexsegment.model.provider.IndexsegmentEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
- org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
+ org.eclipse.emfforms.view.indexsegment.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,2.0.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
+Automatic-Module-Name: org.eclipse.emfforms.view.indexsegment.model.edit
 Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/pom.xml b/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/pom.xml
index 210de2d..5200d9a 100644
--- a/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.indexsegment.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.view.indexsegment.model.edit</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.indexsegment.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.indexsegment.model/META-INF/MANIFEST.MF
index 301bf75..3a03343 100644
--- a/bundles/org.eclipse.emfforms.view.indexsegment.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.indexsegment.model/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.indexsegment.model;singleton:=true
-Automatic-Module-Name: org.eclipse.emfforms.view.indexsegment.model
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model;version="1.19.0",
- org.eclipse.emfforms.spi.view.indexsegment.model.impl;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.view.indexsegment.model.util;version="1.19.0";x-friends:="org.eclipse.emfforms.view.indexsegment.model.edit"
+Export-Package: org.eclipse.emfforms.spi.view.indexsegment.model;version="1.20.0",
+ org.eclipse.emfforms.spi.view.indexsegment.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.view.indexsegment.model.util;version="1.20.0";x-friends:="org.eclipse.emfforms.view.indexsegment.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.emfforms.view.indexsegment.model
diff --git a/bundles/org.eclipse.emfforms.view.indexsegment.model/pom.xml b/bundles/org.eclipse.emfforms.view.indexsegment.model/pom.xml
index feb69ba..0ce8f8b 100644
--- a/bundles/org.eclipse.emfforms.view.indexsegment.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.indexsegment.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.view.indexsegment.model</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/META-INF/MANIFEST.MF
index 496d627..abb1be1 100644
--- a/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.mappingsegment.model.edit;singleton:=true
-Automatic-Module-Name: org.eclipse.emfforms.view.mappingsegment.model.edit
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.spi.view.mappingsegment.model.provider.MappingsegmentEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
- org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
+ org.eclipse.emfforms.view.mappingsegment.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
+Automatic-Module-Name: org.eclipse.emfforms.view.mappingsegment.model.edit
 Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/pom.xml b/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/pom.xml
index 7642948..f91ce0f 100644
--- a/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.mappingsegment.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.view.mappingsegment.model.edit</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.mappingsegment.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.mappingsegment.model/META-INF/MANIFEST.MF
index 7aabf9a..f8b72ec 100644
--- a/bundles/org.eclipse.emfforms.view.mappingsegment.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.mappingsegment.model/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.mappingsegment.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Automatic-Module-Name: org.eclipse.emfforms.view.mappingsegment.model
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model;version="1.19.0",
- org.eclipse.emfforms.spi.view.mappingsegment.model.impl;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.view.mappingsegment.model.util;version="1.19.0";x-friends:="org.eclipse.emfforms.view.mappingsegment.model.edit"
+Export-Package: org.eclipse.emfforms.spi.view.mappingsegment.model;version="1.20.0",
+ org.eclipse.emfforms.spi.view.mappingsegment.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.view.mappingsegment.model.util;version="1.20.0";x-friends:="org.eclipse.emfforms.view.mappingsegment.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.emfforms.view.mappingsegment.model
diff --git a/bundles/org.eclipse.emfforms.view.mappingsegment.model/pom.xml b/bundles/org.eclipse.emfforms.view.mappingsegment.model/pom.xml
index e280c60..026670d 100644
--- a/bundles/org.eclipse.emfforms.view.mappingsegment.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.mappingsegment.model/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.view.mappingsegment.model</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.model.localization/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.model.localization/META-INF/MANIFEST.MF
index 980c80b..e04fa8f 100644
--- a/bundles/org.eclipse.emfforms.view.model.localization/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.model.localization/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms View Localization
 Bundle-SymbolicName: org.eclipse.emfforms.view.model.localization;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.view.model.localization
-Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.view;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="1.5.0"
+Import-Package: org.eclipse.emfforms.spi.common.locale;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.view;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="1.5.0"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.emfforms.view.model.localization/pom.xml b/bundles/org.eclipse.emfforms.view.model.localization/pom.xml
index 0e2d502..57de5a8 100644
--- a/bundles/org.eclipse.emfforms.view.model.localization/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.model.localization/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
diff --git a/bundles/org.eclipse.emfforms.view.multisegment.model.edit/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.multisegment.model.edit/META-INF/MANIFEST.MF
index ebf016b..ed980ea 100644
--- a/bundles/org.eclipse.emfforms.view.multisegment.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.multisegment.model.edit/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.multisegment.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.view.spi.multisegment.model.provider.MultisegmentEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.emfforms.view.spi.multisegment.model.provider;version="2.0.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
- org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
+ org.eclipse.emfforms.view.multisegment.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
-Bundle-ActivationPolicy: lazy
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emfforms.view.multisegment.model.edit
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/org.eclipse.emfforms.view.multisegment.model.edit/pom.xml b/bundles/org.eclipse.emfforms.view.multisegment.model.edit/pom.xml
index aee96ce..765b672 100644
--- a/bundles/org.eclipse.emfforms.view.multisegment.model.edit/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.multisegment.model.edit/pom.xml
@@ -7,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.view.multisegment.model.edit</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/org.eclipse.emfforms.view.multisegment.model/META-INF/MANIFEST.MF b/bundles/org.eclipse.emfforms.view.multisegment.model/META-INF/MANIFEST.MF
index befbcc8..b5aa729 100644
--- a/bundles/org.eclipse.emfforms.view.multisegment.model/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.emfforms.view.multisegment.model/META-INF/MANIFEST.MF
@@ -2,18 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.view.multisegment.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.emfforms.view.spi.multisegment.model;version="1.19.0",
- org.eclipse.emfforms.view.spi.multisegment.model.impl;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.view.spi.multisegment.model.util;version="1.19.0";
-  x-friends:="org.eclipse.emfforms.view.multisegment.model.edit"
+Export-Package: org.eclipse.emfforms.view.spi.multisegment.model;version="1.20.0",
+ org.eclipse.emfforms.view.spi.multisegment.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.view.spi.multisegment.model.util;version="1.20.0";x-friends:="org.eclipse.emfforms.view.multisegment.model.edit"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.view.multisegment.model
diff --git a/bundles/org.eclipse.emfforms.view.multisegment.model/pom.xml b/bundles/org.eclipse.emfforms.view.multisegment.model/pom.xml
index e16fb3e..e145ec5 100644
--- a/bundles/org.eclipse.emfforms.view.multisegment.model/pom.xml
+++ b/bundles/org.eclipse.emfforms.view.multisegment.model/pom.xml
@@ -1,4 +1,3 @@
-
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -8,13 +7,13 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-bundles-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.bundles/</relativePath>
   </parent>
 
   <artifactId>org.eclipse.emfforms.view.multisegment.model</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <groupId>org.eclipse.emf.ecp</groupId>
 </project>
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/META-INF/MANIFEST.MF
index 26d077d..69393df 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model.edit/META-INF/MANIFEST.MF
@@ -9,12 +9,12 @@
 Bundle-Localization: plugin
 Export-Package: org.eclipse.emfforms.spi.spreadsheet.core.error.model.provider;version="1.0.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.error.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model/META-INF/MANIFEST.MF
index 875eec5..961de0d 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.error.model/META-INF/MANIFEST.MF
@@ -7,17 +7,17 @@
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Export-Package: org.eclipse.emfforms.spi.spreadsheet.core.error.model;version="1.0.0",
-  org.eclipse.emfforms.spi.spreadsheet.core.error.model.impl;version="1.0.0",
-  org.eclipse.emfforms.spi.spreadsheet.core.error.model.util;version="1.0.0"
+ org.eclipse.emfforms.spi.spreadsheet.core.error.model.impl;version="1.0.0",
+ org.eclipse.emfforms.spi.spreadsheet.core.error.model.util;version="1.0.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Import-Package: org.eclipse.core.databinding.observable.list;version="0.0.0",
-  org.eclipse.core.databinding.observable.value;version="0.0.0",
-  org.eclipse.core.databinding.property.list;version="0.0.0",
-  org.eclipse.core.databinding.property.value;version="0.0.0",
-  org.eclipse.emfforms.internal.core.services.label;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.label;version="[1.19.0,1.20.0)"
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.core.databinding.property.list;version="0.0.0",
+ org.eclipse.core.databinding.property.value;version="0.0.0",
+ org.eclipse.emfforms.internal.core.services.label;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.error.model
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/META-INF/MANIFEST.MF
index eea7e82..1673236 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization/META-INF/MANIFEST.MF
@@ -5,14 +5,14 @@
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;version="1.0.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emfforms.view.annotation.model;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationElementRendererService.xml,OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategorizationRendererService.xml,OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization.EMFFormsCategoryRendererService.xml
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emf.ecp.view.spi.context;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.6.0,2.0.0)",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)"
+Import-Package: org.eclipse.emf.ecp.view.spi.context;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.6.0,2.0.0)",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.renderer.categorization
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/META-INF/MANIFEST.MF
index 9c60d32..bbc6ad8 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.custom/META-INF/MANIFEST.MF
@@ -5,9 +5,9 @@
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom;version="1.0.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.custom.EMFFormsSpreadsheetCustomControlRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/META-INF/MANIFEST.MF
index e3f9204..fe52fd7 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table/META-INF/MANIFEST.MF
@@ -5,19 +5,19 @@
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer.table;version="1.0.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emfforms.spreadsheet.core.renderer;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emfforms.spreadsheet.core.renderer;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.table.EMFFormsSpreadsheetTableControlRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.emf.databinding;version="0.0.0",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="1.8.0",
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)"
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="1.8.0",
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.renderer.table
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/META-INF/MANIFEST.MF
index fc84569..83f7b47 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer/META-INF/MANIFEST.MF
@@ -7,22 +7,22 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer;version="1.0.0";x-internal:=true
 Require-Bundle: org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.3.0,2.0.0)"
 Import-Package: org.eclipse.core.databinding.observable;version="0.0.0",
-  org.eclipse.core.databinding.observable.value;version="0.0.0",
-  org.eclipse.emf.databinding;version="0.0.0",
-  org.eclipse.emf.ecore.xmi;version="0.0.0",
-  org.eclipse.emf.ecp.view.spi.context;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.label;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="1.6.0",
-  org.osgi.service.component.annotations;version="1.2.0"
+ org.eclipse.core.databinding.observable.value;version="0.0.0",
+ org.eclipse.emf.databinding;version="0.0.0",
+ org.eclipse.emf.ecore.xmi;version="0.0.0",
+ org.eclipse.emf.ecp.view.spi.context;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.domainexpander;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.label;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="1.6.0",
+ org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.renderer
 Service-Component: OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetContainerRendererService.xml,OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetControlRendererService.xml,OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetElementRendererService.xml,OSGI-INF/org.eclipse.emfforms.internal.spreadsheet.core.renderer.EMFFormsSpreadsheetViewRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/META-INF/MANIFEST.MF
index b877475..9936d8a 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.core/META-INF/MANIFEST.MF
@@ -6,29 +6,29 @@
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.internal.spreadsheet.core.converter;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.internal.spreadsheet.core.transfer;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.spi.spreadsheet.core;version="1.0.0",
-  org.eclipse.emfforms.spi.spreadsheet.core.converter;version="1.0.0",
-  org.eclipse.emfforms.spi.spreadsheet.core.transfer;version="1.0.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)",
-  org.apache.poi;bundle-version="[3.8.0,4.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.view.model.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.view.migrator;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.internal.spreadsheet.core.converter;version="1.0.0";x-internal:=true,
+ org.eclipse.emfforms.internal.spreadsheet.core.transfer;version="1.0.0";x-internal:=true,
+ org.eclipse.emfforms.spi.spreadsheet.core;version="1.0.0",
+ org.eclipse.emfforms.spi.spreadsheet.core.converter;version="1.0.0",
+ org.eclipse.emfforms.spi.spreadsheet.core.transfer;version="1.0.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)",
+ org.apache.poi;bundle-version="[3.8.0,4.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emf.ecp.view.migrator;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.eclipse.emf.databinding;version="0.0.0",
-  org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.localization;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="1.6.0",
-  org.osgi.service.component.annotations;version="1.2.0"
+ org.eclipse.emfforms.spi.core.services.databinding.emf;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.localization;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="1.6.0",
+ org.osgi.service.component.annotations;version="1.2.0"
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core
 Service-Component: OSGI-INF/EMFFormsSpreadsheetFormatDescriptionProviderImpl.xml,
  OSGI-INF/EMFFormsSpreadsheetMultiAttributeConverter.xml,
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/META-INF/MANIFEST.MF
index 9a2a3b8..7112b03 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.file/META-INF/MANIFEST.MF
@@ -5,14 +5,14 @@
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.file;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.internal.spreadsheet.file.messages;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.spi.spreadsheet.file;version="1.0.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)"
+ org.eclipse.emfforms.internal.spreadsheet.file.messages;version="1.0.0";x-internal:=true,
+ org.eclipse.emfforms.spi.spreadsheet.file;version="1.0.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.file
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.osgi.util;version="1.1.0",
-  org.osgi.framework;version="[1.2.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.osgi.util;version="1.1.0",
+ org.osgi.framework;version="[1.2.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.stream/META-INF/MANIFEST.MF b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.stream/META-INF/MANIFEST.MF
index f65b513..56f163f 100644
--- a/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.stream/META-INF/MANIFEST.MF
+++ b/bundles/spreadsheet/org.eclipse.emfforms.spreadsheet.stream/META-INF/MANIFEST.MF
@@ -5,14 +5,14 @@
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.stream;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.internal.spreadsheet.stream.messages;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.spi.spreadsheet.stream;version="1.0.0"
+ org.eclipse.emfforms.internal.spreadsheet.stream.messages;version="1.0.0";x-internal:=true,
+ org.eclipse.emfforms.spi.spreadsheet.stream;version="1.0.0"
 Require-Bundle: org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)"
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.stream
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.osgi.util;version="1.1.0",
-  org.osgi.framework;version="[1.3.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.osgi.util;version="1.1.0",
+ org.osgi.framework;version="[1.3.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/META-INF/MANIFEST.MF
index 01895a6..bd58afa 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample Application e3
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.e3;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Framework
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e3;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e3;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.application.sample.e3
 Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
index 743f7e5..b584b46 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/makeithappen_e3.product
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="MakeItHappen Sample e3 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e3" id="org.eclipse.emf.ecp.makeithappen.application.sample.e3.product" application="org.eclipse.emf.ecp.makeithappen.application.sample.e3.application" version="1.19.0" useFeatures="true" includeLaunchers="true">
+<product name="MakeItHappen Sample e3 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e3" id="org.eclipse.emf.ecp.makeithappen.application.sample.e3.product" application="org.eclipse.emf.ecp.makeithappen.application.sample.e3.application" version="1.20.0" useFeatures="true" includeLaunchers="true">
 
    <configIni use="default">
    </configIni>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml
index 57dd6b6..58c6481 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e3/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-examples-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
   </parent>
 
@@ -15,7 +15,7 @@
   <packaging>eclipse-plugin</packaging>
 
   <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   
   <properties>
   	<jacoco.percentage.instruction>0.0</jacoco.percentage.instruction>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/META-INF/MANIFEST.MF
index aebc194..a5021c9 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample Application e4
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.e4;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.e4.parts;version="1.20.0";x-internal:=true
 Require-Bundle: javax.inject;bundle-version="1.0.0",
-  org.eclipse.core.runtime;bundle-version="[3.9.100,4.0.0)",
-  org.eclipse.swt;bundle-version="[3.102.1,4.0.0)",
-  org.eclipse.e4.ui.model.workbench;bundle-version="[1.0.1,3.0.0)",
-  org.eclipse.jface;bundle-version="[3.9.1,4.0.0)",
-  org.eclipse.e4.ui.services;bundle-version="[1.0.1,2.0.0)",
-  org.eclipse.e4.ui.workbench;bundle-version="[1.0.2,2.0.0)",
-  org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.e4.ui.di;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.1,2.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.9.100,4.0.0)",
+ org.eclipse.swt;bundle-version="[3.102.1,4.0.0)",
+ org.eclipse.e4.ui.model.workbench;bundle-version="[1.0.1,3.0.0)",
+ org.eclipse.jface;bundle-version="[3.9.1,4.0.0)",
+ org.eclipse.e4.ui.services;bundle-version="[1.0.1,2.0.0)",
+ org.eclipse.e4.ui.workbench;bundle-version="[1.0.2,2.0.0)",
+ org.eclipse.e4.core.di;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.e4.ui.di;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.1,2.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.application.sample.e4
 Import-Package: javax.annotation;version="1.0.0"
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
index 8422e68..ea0b90e 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/makeithappen_e4.product
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="MakeItHappen Sample e4 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e4" id="org.eclipse.emf.ecp.makeithappen.application.sample.e4.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.19.0" useFeatures="true" includeLaunchers="true">
+<product name="MakeItHappen Sample e4 Product" uid="org.eclipse.emf.ecp.makeithappen.sample.product.e4" id="org.eclipse.emf.ecp.makeithappen.application.sample.e4.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.20.0" useFeatures="true" includeLaunchers="true">
 
    <configIni use="default">
    </configIni>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml
index 940327a..59bb82a 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.e4/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-examples-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
   </parent>
 
@@ -15,7 +15,7 @@
   <packaging>eclipse-plugin</packaging>
 
   <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <properties>
   	<jacoco.percentage.instruction>0.0</jacoco.percentage.instruction>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/META-INF/MANIFEST.MF
index 7bcb083..10f7ae8 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.fx/META-INF/MANIFEST.MF
@@ -5,11 +5,11 @@
 Bundle-Version: 1.7.0.qualifier
 Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.fx;version="1.6.0";x-internal:=true
 Require-Bundle: org.eclipse.fx.osgi.util;bundle-version="[2.0.0,3.0.0)",
-  org.eclipse.fx.core.databinding;bundle-version="[2.0.0,3.0.0)",
-  org.eclipse.fx.ui.databinding;bundle-version="[2.0.0,3.0.0)",
-  org.eclipse.equinox.app;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.16.0,1.17.0)"
-Bundle-ActivationPolicy: lazy
+ org.eclipse.fx.core.databinding;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.fx.ui.databinding;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.equinox.app;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.application.sample.fx
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/META-INF/MANIFEST.MF
index 3e90316..1bb08dd 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample J2ee RAP
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee;version="1.4.0";x-internal:=true
 Require-Bundle: org.eclipse.rap.rwt;bundle-version="[2.0.0,4.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.rap.jface;bundle-version="[2.0.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.rap.jface.databinding;bundle-version="[2.0.0,4.0.0)"
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.rap.jface;bundle-version="[2.0.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.rap.jface.databinding;bundle-version="[2.0.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee
 Service-Component: OSGI-INF/makeithappenApplicationConfiguration.xml
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/makeithappen_RAP.target b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/makeithappen_RAP.target
index bf795c4..6387b64 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/makeithappen_RAP.target
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/makeithappen_RAP.target
@@ -5,7 +5,7 @@
 <unit id="org.eclipse.emf.ecp.emfforms.runtime.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.ecp.rap.sdk.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_target_119"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_target_120"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/pom.xml
index 85f887d..79867f3 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-examples-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

   </parent>

 

@@ -15,7 +15,7 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

   <properties>

   	<jacoco.percentage.instruction>0.0</jacoco.percentage.instruction>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/META-INF/MANIFEST.MF
index 4a180ea..4adadbe 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: MakeItHappen Sample RAP Application
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.application.sample.rap;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Framework
 Export-Package: org.eclipse.emf.ecp.makeithappen.application.sample.rap;version="1.0.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.rap.ui.workbench;bundle-version="[2.3.0,4.0.0)",
-  org.eclipse.rap.jface;bundle-version="[2.3.0,4.0.0)",
-  org.eclipse.rap.ui;bundle-version="[2.3.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.rap.ui.workbench;bundle-version="[2.3.0,4.0.0)",
+ org.eclipse.rap.jface;bundle-version="[2.3.0,4.0.0)",
+ org.eclipse.rap.ui;bundle-version="[2.3.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.application.sample.rap
 Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/makeithappen_RAP.target b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/makeithappen_RAP.target
index bf795c4..6387b64 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/makeithappen_RAP.target
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/makeithappen_RAP.target
@@ -5,7 +5,7 @@
 <unit id="org.eclipse.emf.ecp.emfforms.runtime.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.ecp.rap.sdk.feature.feature.group" version="0.0.0"/>
 <unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/ecp/releases/releases_target_119"/>
+<repository location="http://download.eclipse.org/ecp/releases/releases_target_120"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.e4.rcp.feature.group" version="0.0.0"/>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/pom.xml
index 1301a00..10591b9 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.application.sample.rap/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-examples-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
   </parent>
 
@@ -15,7 +15,7 @@
   <packaging>eclipse-plugin</packaging>
 
   <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 
   <properties>
   	<jacoco.percentage.instruction>0.0</jacoco.percentage.instruction>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml b/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml
index 548ead4..7624b3e 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.makeithappen.e3"
       label="The Make it happen 3x Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.makeithappen.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/pom.xml
index 6082109..f62380a 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.e3.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-examples-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.makeithappen.e3</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	<build>
 		<plugins>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml b/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml
index af44183..ca0a377 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.makeithappen.e4"
       label="The Make it happen e4 Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.makeithappen.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/pom.xml
index b7550e5..4172843 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.e4.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-examples-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.makeithappen.e4</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	<build>
 		<plugins>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.feature/feature.xml b/examples/org.eclipse.emf.ecp.makeithappen.feature/feature.xml
index ec3cf62..2f95352 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.feature/feature.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.makeithappen.feature"
       label="EMF Forms MakeItHappen Example (Target Feature)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.makeithappen.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.feature/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.feature/pom.xml
index a039026..cb607e3 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.feature/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.feature/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-examples-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.makeithappen.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF
index a690b26..88b5db5 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.makeithappen.model.task.provider.TaskEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.makeithappen.model.task.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.makeithappen.model.task.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/pom.xml
index 8957906..7902fab 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.edit/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.edit/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-examples-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/META-INF/MANIFEST.MF
index 2ac5046..2bf7c0b 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.makeithappen.model.viewmodel
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model.viewmodel;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/pom.xml
index f2c4b00..408d19f 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model.viewmodel/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-examples-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
   </parent>
 
@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>
 
   <groupId>org.eclipse.emf.ecp</groupId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF
index 62b3ae3..519c380 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.makeithappen.model.task;version="1.19.0",
- org.eclipse.emf.ecp.makeithappen.model.task.impl;version="1.19.0",
- org.eclipse.emf.ecp.makeithappen.model.task.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.makeithappen.model.task;version="1.20.0",
+ org.eclipse.emf.ecp.makeithappen.model.task.impl;version="1.20.0",
+ org.eclipse.emf.ecp.makeithappen.model.task.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.model/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.model/pom.xml
index 44ca3e4..e18966f 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.model/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.model/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-examples-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/META-INF/MANIFEST.MF
index 5fa32da..a8106af 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/META-INF/MANIFEST.MF
@@ -2,31 +2,31 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EmailControl
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.email.renderer;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.makeithappen.ui.emailcontrol;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/emailRendererService.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.view.email.renderer
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/pom.xml
index fcb900c..b358c94 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.email.renderer/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-examples-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/META-INF/MANIFEST.MF
index c5252a1..a2871d7 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Expandbar Group Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.view.group.renderer;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: lib/org.eclipse.nebula.widgets.pgroup_1.0.0.201310241250.jar,
-  .
+ .
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup;version="1.19.0",
-  org.eclipse.nebula.widgets.pgroup;version="1.0.0",
-  org.eclipse.nebula.widgets.pgroup.internal;version="1.0.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.makeithappen.view.group.swt.pgroup;version="1.20.0",
+ org.eclipse.nebula.widgets.pgroup;version="1.0.0",
+ org.eclipse.nebula.widgets.pgroup.internal;version="1.0.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)"
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.events;version="0.0.0",
-  org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.internal;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0"
+ org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.events;version="0.0.0",
+ org.eclipse.swt.graphics;version="0.0.0",
+ org.eclipse.swt.internal;version="0.0.0",
+ org.eclipse.swt.layout;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.view.group.renderer
 Service-Component: OSGI-INF/pGroupRendererService.xml
 Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/pom.xml
index 7dc6e80..2d68f61 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/pom.xml
@@ -7,7 +7,7 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-examples-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

   </parent>

 

@@ -15,5 +15,5 @@
   <packaging>eclipse-plugin</packaging>

 

   <groupId>org.eclipse.emf.ecp</groupId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
index e3df347..a596544 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
+++ b/examples/org.eclipse.emf.ecp.makeithappen.view.group.renderer/src/org/eclipse/emf/ecp/makeithappen/view/group/swt/pgroup/PGroupRenderer.java
@@ -25,7 +25,6 @@
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emf.ecp.view.spi.swt.layout.LayoutProviderHelper;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.eclipse.emfforms.spi.swt.core.layout.EMFFormsSWTLayoutUtil;
 import org.eclipse.emfforms.spi.swt.core.layout.GridDescriptionFactory;
@@ -57,12 +56,11 @@
 	 * @param viewContext the view context
 	 * @param reportService the {@link ReportService}
 	 * @param factory the {@link EMFFormsRendererFactory}
-	 * @param emfFormsDatabinding The {@link EMFFormsDatabinding}
 	 */
 	@Inject
 	public PGroupRenderer(VGroup vElement, ViewModelContext viewContext, ReportService reportService,
-		EMFFormsRendererFactory factory, EMFFormsDatabinding emfFormsDatabinding) {
-		super(vElement, viewContext, reportService, factory, emfFormsDatabinding);
+		EMFFormsRendererFactory factory) {
+		super(vElement, viewContext, reportService, factory);
 	}
 
 	@Override
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.ecp.makeithappen.wizards/META-INF/MANIFEST.MF
index 75c544c..d7b1fbd 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emf.ecp.makeithappen.wizards/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Make It Happen Examples
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.wizards;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.makeithappen.internal.wizards.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.makeithappen.internal.wizards;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emf.common.ui;bundle-version="[2.5.0,3.0.0)",
-  org.eclipse.emf.common;bundle-version="[2.9.0,3.0.0)"
+Export-Package: org.eclipse.emf.ecp.makeithappen.internal.wizards;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.9.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.makeithappen.wizards
 Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml b/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml
index ea9561c..efaf7d5 100644
--- a/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml
+++ b/examples/org.eclipse.emf.ecp.makeithappen.wizards/pom.xml
@@ -6,7 +6,7 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-examples-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

 	</parent>

 

@@ -14,7 +14,7 @@
 	<packaging>eclipse-plugin</packaging>

 

 	<groupId>org.eclipse.emf.ecp</groupId>

-	<version>1.19.0-SNAPSHOT</version>

+	<version>1.20.0-SNAPSHOT</version>

 	<build>

 		<plugins>

 			<plugin>

diff --git a/examples/org.eclipse.emfforms.coffee.feature/feature.xml b/examples/org.eclipse.emfforms.coffee.feature/feature.xml
index 85823e3..ed52617 100644
--- a/examples/org.eclipse.emfforms.coffee.feature/feature.xml
+++ b/examples/org.eclipse.emfforms.coffee.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.coffee.feature"
       label="Coffee Example Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.coffee.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/examples/org.eclipse.emfforms.coffee.feature/pom.xml b/examples/org.eclipse.emfforms.coffee.feature/pom.xml
index d0b0d88..a2c4314 100644
--- a/examples/org.eclipse.emfforms.coffee.feature/pom.xml
+++ b/examples/org.eclipse.emfforms.coffee.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-examples-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.coffee.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	   <build>
diff --git a/examples/org.eclipse.emfforms.coffee.model.edit/META-INF/MANIFEST.MF b/examples/org.eclipse.emfforms.coffee.model.edit/META-INF/MANIFEST.MF
index 7620306..2bffc85 100644
--- a/examples/org.eclipse.emfforms.coffee.model.edit/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emfforms.coffee.model.edit/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.coffee.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emfforms.coffee.model.coffee.provider.CoffeeEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.coffee.model.coffee.provider;version="1.19.0"
+Export-Package: org.eclipse.emfforms.coffee.model.coffee.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emfforms.coffee.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
+ org.eclipse.emfforms.coffee.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emfforms.coffee.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/examples/org.eclipse.emfforms.coffee.model.edit/pom.xml b/examples/org.eclipse.emfforms.coffee.model.edit/pom.xml
index 6e81ed0..e9db725 100644
--- a/examples/org.eclipse.emfforms.coffee.model.edit/pom.xml
+++ b/examples/org.eclipse.emfforms.coffee.model.edit/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-examples-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

   </parent>

 

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emfforms.coffee.model.edit</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/examples/org.eclipse.emfforms.coffee.model.viewmodel/META-INF/MANIFEST.MF b/examples/org.eclipse.emfforms.coffee.model.viewmodel/META-INF/MANIFEST.MF
index 63b09ec..616acd9 100644
--- a/examples/org.eclipse.emfforms.coffee.model.viewmodel/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emfforms.coffee.model.viewmodel/META-INF/MANIFEST.MF
@@ -2,5 +2,5 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emfforms.coffee.model.viewmodel
 Bundle-SymbolicName: org.eclipse.emfforms.coffee.model.viewmodel;singleton:=true
-Bundle-Version: 1.19.0.qualifier
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
+Bundle-Version: 1.20.0.qualifier
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
diff --git a/examples/org.eclipse.emfforms.coffee.model.viewmodel/pom.xml b/examples/org.eclipse.emfforms.coffee.model.viewmodel/pom.xml
index 36d28fd..02c7ecf 100644
--- a/examples/org.eclipse.emfforms.coffee.model.viewmodel/pom.xml
+++ b/examples/org.eclipse.emfforms.coffee.model.viewmodel/pom.xml
@@ -7,12 +7,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-examples-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>
   </parent>
 
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.coffee.model.viewmodel</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/examples/org.eclipse.emfforms.coffee.model/META-INF/MANIFEST.MF b/examples/org.eclipse.emfforms.coffee.model/META-INF/MANIFEST.MF
index c744649..e6604d4 100644
--- a/examples/org.eclipse.emfforms.coffee.model/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emfforms.coffee.model/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.coffee.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.emfforms.coffee.model.coffee;version="1.19.0",
- org.eclipse.emfforms.coffee.model.coffee.impl;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.coffee.model.coffee.util;version="1.19.0"
+Export-Package: org.eclipse.emfforms.coffee.model.coffee;version="1.20.0",
+ org.eclipse.emfforms.coffee.model.coffee.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.coffee.model.coffee.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.coffee.model
diff --git a/examples/org.eclipse.emfforms.coffee.model/pom.xml b/examples/org.eclipse.emfforms.coffee.model/pom.xml
index 1214a84..be46dcb 100644
--- a/examples/org.eclipse.emfforms.coffee.model/pom.xml
+++ b/examples/org.eclipse.emfforms.coffee.model/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-examples-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

   </parent>

 

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emfforms.coffee.model</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/examples/org.eclipse.emfforms.coffee.wizards/META-INF/MANIFEST.MF b/examples/org.eclipse.emfforms.coffee.wizards/META-INF/MANIFEST.MF
index c31c059..c5d7dce 100644
--- a/examples/org.eclipse.emfforms.coffee.wizards/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emfforms.coffee.wizards/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Coffee Model Example Wizards
 Bundle-SymbolicName: org.eclipse.emfforms.coffee.wizards;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.coffee.wizards;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.common.ui;bundle-version="[2.12.0,3.0.0)",
-  org.eclipse.emf.common;bundle-version="[2.13.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)"
+Export-Package: org.eclipse.emfforms.internal.coffee.wizards;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.example.common.wizards;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.osgi.framework;version="1.0.0"
 Automatic-Module-Name: org.eclipse.emfforms.coffee.wizards
+Import-Package: org.osgi.framework;version="1.0.0"
diff --git a/examples/org.eclipse.emfforms.coffee.wizards/pom.xml b/examples/org.eclipse.emfforms.coffee.wizards/pom.xml
index debca81..5000024 100644
--- a/examples/org.eclipse.emfforms.coffee.wizards/pom.xml
+++ b/examples/org.eclipse.emfforms.coffee.wizards/pom.xml
@@ -6,13 +6,13 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-examples-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

 	</parent>

 

 	<groupId>org.eclipse.emf.ecp</groupId>

 	<artifactId>org.eclipse.emfforms.coffee.wizards</artifactId>

-	<version>1.19.0-SNAPSHOT</version>

+	<version>1.20.0-SNAPSHOT</version>

 	<packaging>eclipse-plugin</packaging>

 

 	<build>

diff --git a/examples/org.eclipse.emfforms.example.common.wizards/META-INF/MANIFEST.MF b/examples/org.eclipse.emfforms.example.common.wizards/META-INF/MANIFEST.MF
index b99229c..fdf845a 100644
--- a/examples/org.eclipse.emfforms.example.common.wizards/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.emfforms.example.common.wizards/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Wizards for EMFForms Examples
 Bundle-SymbolicName: org.eclipse.emfforms.example.common.wizards;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.osgi.framework;version="1.0.0"
+Export-Package: org.eclipse.emfforms.internal.example.wizards;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.example.wizards;version="1.20.0"
 Require-Bundle: org.eclipse.emf.common;bundle-version="[2.13.0,3.0.0)",
  org.eclipse.emf.common.ui;bundle-version="[2.12.0,3.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.10.0,4.0.0)",
  org.eclipse.jface;bundle-version="[3.13.2,4.0.0)",
  org.eclipse.swt;bundle-version="[3.106.3,4.0.0)"
-Export-Package: org.eclipse.emfforms.internal.example.wizards;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.example.wizards;version="1.19.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.example.common.wizards
+Import-Package: org.osgi.framework;version="1.0.0"
diff --git a/examples/org.eclipse.emfforms.example.common.wizards/pom.xml b/examples/org.eclipse.emfforms.example.common.wizards/pom.xml
index 285399a..8b69fdb 100644
--- a/examples/org.eclipse.emfforms.example.common.wizards/pom.xml
+++ b/examples/org.eclipse.emfforms.example.common.wizards/pom.xml
@@ -6,12 +6,12 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-examples-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.examples/</relativePath>

 	</parent>

 

 	<groupId>org.eclipse.emf.ecp</groupId>

 	<artifactId>org.eclipse.emfforms.example.common.wizards</artifactId>

-	<version>1.19.0-SNAPSHOT</version>

+	<version>1.20.0-SNAPSHOT</version>

 	<packaging>eclipse-plugin</packaging>

 </project>

diff --git a/features/org.eclipse.emf.ecp.cdo.feature/feature.xml b/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
index 32bb1dc..96837a2 100644
--- a/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.cdo.feature/feature.xml
@@ -12,12 +12,12 @@
 <feature
       id="org.eclipse.emf.ecp.cdo.feature"
       label="ECP CDO Integration (Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.cdo.core"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       Integration of the CDO model repository.
diff --git a/features/org.eclipse.emf.ecp.cdo.feature/pom.xml b/features/org.eclipse.emf.ecp.cdo.feature/pom.xml
index dae7276..c5f2cd4 100644
--- a/features/org.eclipse.emf.ecp.cdo.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.cdo.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.cdo.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.changebroker.feature/feature.xml b/features/org.eclipse.emf.ecp.changebroker.feature/feature.xml
index c7b4551..cc5088a 100644
--- a/features/org.eclipse.emf.ecp.changebroker.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.changebroker.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.changebroker.feature"
       label="ECP Change Broker Feature (do not install into IDE)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.changebroker"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       Generic Observer Bus for EMF Notifications including an ECP/EMFStore-Bridge.
diff --git a/features/org.eclipse.emf.ecp.changebroker.feature/pom.xml b/features/org.eclipse.emf.ecp.changebroker.feature/pom.xml
index 0eb682e..fb90a19 100644
--- a/features/org.eclipse.emf.ecp.changebroker.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.changebroker.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.changebroker.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.demo.e3.feature/feature.xml b/features/org.eclipse.emf.ecp.demo.e3.feature/feature.xml
index f20b718..9de9f34 100644
--- a/features/org.eclipse.emf.ecp.demo.e3.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.demo.e3.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.demo.e3.feature"
       label="ECP e3 Demo Application"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.application.e3"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.demo.e3.feature/pom.xml b/features/org.eclipse.emf.ecp.demo.e3.feature/pom.xml
index ebc0256..2ec4a98 100644
--- a/features/org.eclipse.emf.ecp.demo.e3.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.demo.e3.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.demo.e3.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.demo.e4.feature/feature.xml b/features/org.eclipse.emf.ecp.demo.e4.feature/feature.xml
index 1167e69..7240191 100644
--- a/features/org.eclipse.emf.ecp.demo.e4.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.demo.e4.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.demo.e4.feature"
       label="ECP e4 Demo Application"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.application.e4"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.demo.e4.feature/pom.xml b/features/org.eclipse.emf.ecp.demo.e4.feature/pom.xml
index 04744dc..ebb111d 100644
--- a/features/org.eclipse.emf.ecp.demo.e4.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.demo.e4.feature/pom.xml
@@ -5,12 +5,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.demo.e4.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 
 	<build>
diff --git a/features/org.eclipse.emf.ecp.diffmerge.feature/feature.xml b/features/org.eclipse.emf.ecp.diffmerge.feature/feature.xml
index 87c547f..36e28ed 100644
--- a/features/org.eclipse.emf.ecp.diffmerge.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.diffmerge.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.diffmerge.feature"
       label="ECP DiffMerge Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.diffmerge.context"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml b/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml
index 575c666..704b9e3 100644
--- a/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.diffmerge.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.e3.feature/feature.xml b/features/org.eclipse.emf.ecp.e3.feature/feature.xml
index a39ce20..4562886 100644
--- a/features/org.eclipse.emf.ecp.e3.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.e3.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.e3.feature"
       label="ECP 3.x UI Integration"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.ui.e3"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       Integration of the EMF Client Platform UI into the Eclipse 3.x workbench, including views and perspectives.
diff --git a/features/org.eclipse.emf.ecp.e3.feature/pom.xml b/features/org.eclipse.emf.ecp.e3.feature/pom.xml
index 2763c29..1177de1 100644
--- a/features/org.eclipse.emf.ecp.e3.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.e3.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.e3.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.e4.feature/feature.xml b/features/org.eclipse.emf.ecp.e4.feature/feature.xml
index 434949e..bf3d1dc 100644
--- a/features/org.eclipse.emf.ecp.e4.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.e4.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.e4.feature"
       label="ECP e4 UI Integration"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.ui.e4"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.e4.feature/pom.xml b/features/org.eclipse.emf.ecp.e4.feature/pom.xml
index f025505..e032611 100644
--- a/features/org.eclipse.emf.ecp.e4.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.e4.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.e4.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.ecore.editor.feature/feature.xml b/features/org.eclipse.emf.ecp.ecore.editor.feature/feature.xml
index 6245b3c..92d461f 100644
--- a/features/org.eclipse.emf.ecp.ecore.editor.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.ecore.editor.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature

       id="org.eclipse.emf.ecp.ecore.editor.feature"

       label="Ecore Editor Wizard Feature"

-      version="1.19.0.qualifier"

+      version="1.20.0.qualifier"

       provider-name="%providerName"

       plugin="org.eclipse.emf.ecp.ecore.editor.ui"

       license-feature="org.eclipse.emf.ecp.license.feature"

-      license-feature-version="1.19.0.qualifier">

+      license-feature-version="1.20.0.qualifier">

 

    <description>

       %description

@@ -34,4 +34,11 @@
          version="0.0.0"

          unpack="false"/>

 

+   <plugin

+         id="org.eclipse.emfforms.ide.ecore.builder"

+         download-size="0"

+         install-size="0"

+         version="0.0.0"

+         unpack="false"/>

+

 </feature>

diff --git a/features/org.eclipse.emf.ecp.ecore.editor.feature/pom.xml b/features/org.eclipse.emf.ecp.ecore.editor.feature/pom.xml
index 638bbfc..463d4fd 100644
--- a/features/org.eclipse.emf.ecp.ecore.editor.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.ecore.editor.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-features-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>

   </parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.ecore.editor.feature</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-feature</packaging>

 </project>

diff --git a/features/org.eclipse.emf.ecp.ecore.feature/feature.xml b/features/org.eclipse.emf.ecp.ecore.feature/feature.xml
index c1c5d49..99a272d 100644
--- a/features/org.eclipse.emf.ecp.ecore.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.ecore.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.ecore.feature"
       label="EMF Forms Ecore Model Controls"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.edit.ecore.swt"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.ecore.feature/pom.xml b/features/org.eclipse.emf.ecp.ecore.feature/pom.xml
index 9aa9157..8755eb8 100644
--- a/features/org.eclipse.emf.ecp.ecore.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.ecore.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ecore.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml b/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml
index e18cd37..72c7c88 100644
--- a/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.emf2web.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.emf2web.feature"
       label="JSON Forms Integration"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml b/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml
index 27e68ec..f84bffc 100644
--- a/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.emf2web.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.emf2web.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	<build>
diff --git a/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/feature.xml b/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/feature.xml
index 1774415..d489b0a 100644
--- a/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.emfforms.idetooling.feature"
       label="EMF Forms IDE Tooling"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
@@ -26,9 +26,11 @@
    <includes
          id="org.eclipse.emf.ecp.view.model.controls.feature"
          version="0.0.0"/>
+
    <includes
          id="org.eclipse.emf.ecp.view.validation.initial.feature"
          version="0.0.0"/>
+
    <plugin
          id="org.eclipse.emf.ecp.ide.util"
          download-size="0"
@@ -118,4 +120,18 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emfforms.ide.builder"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.emfforms.ide.viewtemplate.builder"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/pom.xml b/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/pom.xml
index b04b2b2..e26948c 100644
--- a/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.emfforms.idetooling.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfforms.idetooling.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.emfforms.runtime.feature/feature.xml b/features/org.eclipse.emf.ecp.emfforms.runtime.feature/feature.xml
index 9274efa..2b4e11f 100644
--- a/features/org.eclipse.emf.ecp.emfforms.runtime.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.emfforms.runtime.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.emfforms.runtime.feature"
       label="EMF Forms Runtime"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.emfforms.runtime.feature/pom.xml b/features/org.eclipse.emf.ecp.emfforms.runtime.feature/pom.xml
index 173aed8..c1c566e 100644
--- a/features/org.eclipse.emf.ecp.emfforms.runtime.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.emfforms.runtime.feature/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.emfforms.runtime.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.emfforms.sdk.feature/feature.xml b/features/org.eclipse.emf.ecp.emfforms.sdk.feature/feature.xml
index a2eb6df..851cf0d 100644
--- a/features/org.eclipse.emf.ecp.emfforms.sdk.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.emfforms.sdk.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.emfforms.sdk.feature"
       label="EMF Forms SDK"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.emfforms.sdk.feature/pom.xml b/features/org.eclipse.emf.ecp.emfforms.sdk.feature/pom.xml
index ceb4152..8a976e6 100644
--- a/features/org.eclipse.emf.ecp.emfforms.sdk.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.emfforms.sdk.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.emfforms.sdk.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	<build>
diff --git a/features/org.eclipse.emf.ecp.emfstore.feature/feature.xml b/features/org.eclipse.emf.ecp.emfstore.feature/feature.xml
index 17378b9..af7f6dc 100644
--- a/features/org.eclipse.emf.ecp.emfstore.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.emfstore.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.emfstore.feature"
       label="ECP EMFStore Integration"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.emfstore.core"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml b/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml
index 7831a7f..7c1b57b 100644
--- a/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.emfstore.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emfstore.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.examplemodel.ui.feature/feature.xml b/features/org.eclipse.emf.ecp.examplemodel.ui.feature/feature.xml
index 926dc0b..361da75 100644
--- a/features/org.eclipse.emf.ecp.examplemodel.ui.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.examplemodel.ui.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.examplemodel.ui.feature"
       label="Example Model UI Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.examplemodel.ui"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.examplemodel.ui.feature/pom.xml b/features/org.eclipse.emf.ecp.examplemodel.ui.feature/pom.xml
index 3cd017e..820a9c5 100644
--- a/features/org.eclipse.emf.ecp.examplemodel.ui.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.examplemodel.ui.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.examplemodel.ui.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   
   	<build>
diff --git a/features/org.eclipse.emf.ecp.feature/feature.xml b/features/org.eclipse.emf.ecp.feature/feature.xml
index de65376..b7fd9f5 100644
--- a/features/org.eclipse.emf.ecp.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.feature/feature.xml
@@ -12,12 +12,12 @@
 <feature
       id="org.eclipse.emf.ecp.feature"
       label="ECP Core"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.core"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       The core platform containing the model workspace, the navigator, the editor and the repository browser.
diff --git a/features/org.eclipse.emf.ecp.feature/pom.xml b/features/org.eclipse.emf.ecp.feature/pom.xml
index 8416922..b0f11cb 100644
--- a/features/org.eclipse.emf.ecp.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.i18n.feature/feature.xml b/features/org.eclipse.emf.ecp.i18n.feature/feature.xml
index 41c8c6e..f58c05f 100644
--- a/features/org.eclipse.emf.ecp.i18n.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.i18n.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.i18n.feature"
       label="ECP i18n Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.i18n.feature/pom.xml b/features/org.eclipse.emf.ecp.i18n.feature/pom.xml
index 9ba6670..2fe5ce5 100644
--- a/features/org.eclipse.emf.ecp.i18n.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.i18n.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.i18n.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 	<build>
diff --git a/features/org.eclipse.emf.ecp.ide.migration.feature/feature.xml b/features/org.eclipse.emf.ecp.ide.migration.feature/feature.xml
index e0b9f50..5d0b6db 100644
--- a/features/org.eclipse.emf.ecp.ide.migration.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.ide.migration.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.ide.migration.feature"
       label="Namespace View Model Migration Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.ide.migration.feature/pom.xml b/features/org.eclipse.emf.ecp.ide.migration.feature/pom.xml
index 5240f69..96daaee 100644
--- a/features/org.eclipse.emf.ecp.ide.migration.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.ide.migration.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.migration.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.license.feature/feature.xml b/features/org.eclipse.emf.ecp.license.feature/feature.xml
index 1f983bd..23e1a15 100644
--- a/features/org.eclipse.emf.ecp.license.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.license.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature

       id="org.eclipse.emf.ecp.license.feature"

       label="EMF Client Platform License"

-      version="1.19.0.qualifier"

+      version="1.20.0.qualifier"

       provider-name="Eclipse Modeling Project"

       image="eclipse_update_120.jpg">

 

diff --git a/features/org.eclipse.emf.ecp.license.feature/pom.xml b/features/org.eclipse.emf.ecp.license.feature/pom.xml
index 9360392..b915015 100644
--- a/features/org.eclipse.emf.ecp.license.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.license.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.license.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.rap.feature/feature.xml b/features/org.eclipse.emf.ecp.rap.feature/feature.xml
index ceaf279..e6bc83c 100644
--- a/features/org.eclipse.emf.ecp.rap.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.rap.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.rap.feature"
       label="ECP RAP Demo Application (Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.rap"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.rap.feature/pom.xml b/features/org.eclipse.emf.ecp.rap.feature/pom.xml
index d488be5..73c9510 100644
--- a/features/org.eclipse.emf.ecp.rap.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.rap.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.rap.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.rap.sdk.feature/feature.xml b/features/org.eclipse.emf.ecp.rap.sdk.feature/feature.xml
index a87444b..780816c 100644
--- a/features/org.eclipse.emf.ecp.rap.sdk.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.rap.sdk.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.rap.sdk.feature"
       label="ECP RAP SDK (Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.rap.sdk.feature/pom.xml b/features/org.eclipse.emf.ecp.rap.sdk.feature/pom.xml
index 20ad94b..2a6995c 100644
--- a/features/org.eclipse.emf.ecp.rap.sdk.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.rap.sdk.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.rap.sdk.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	<build>
diff --git a/features/org.eclipse.emf.ecp.rap.util.feature/feature.xml b/features/org.eclipse.emf.ecp.rap.util.feature/feature.xml
index a645df9..ba65f77 100644
--- a/features/org.eclipse.emf.ecp.rap.util.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.rap.util.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.rap.util.feature"
       label="ECP RAP UI Integration"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.rap.util"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.rap.util.feature/pom.xml b/features/org.eclipse.emf.ecp.rap.util.feature/pom.xml
index f1916f8..3446908 100644
--- a/features/org.eclipse.emf.ecp.rap.util.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.rap.util.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.rap.util.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.sdk.e4.feature/feature.xml b/features/org.eclipse.emf.ecp.sdk.e4.feature/feature.xml
index 5b5b6fb..83cb302 100644
--- a/features/org.eclipse.emf.ecp.sdk.e4.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.sdk.e4.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.sdk.e4.feature"
       label="ECP SDK e4 (Target Feature)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.sdk.e4.feature/pom.xml b/features/org.eclipse.emf.ecp.sdk.e4.feature/pom.xml
index 690dc3d..f42c85f 100644
--- a/features/org.eclipse.emf.ecp.sdk.e4.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.sdk.e4.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.sdk.e4.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	<build>
diff --git a/features/org.eclipse.emf.ecp.sdk.feature/feature.xml b/features/org.eclipse.emf.ecp.sdk.feature/feature.xml
index 310e3f8..5c54182 100644
--- a/features/org.eclipse.emf.ecp.sdk.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.sdk.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.sdk.feature"
       label="ECP SDK 3.x"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.sdk.feature/pom.xml b/features/org.eclipse.emf.ecp.sdk.feature/pom.xml
index 4f4f062..e547e4b 100644
--- a/features/org.eclipse.emf.ecp.sdk.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.sdk.feature/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.sdk.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 	
 	<build>
diff --git a/features/org.eclipse.emf.ecp.target.feature/feature.xml b/features/org.eclipse.emf.ecp.target.feature/feature.xml
index a60d6ef..25b1110 100644
--- a/features/org.eclipse.emf.ecp.target.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.target.feature/feature.xml
@@ -2,10 +2,10 @@
 <feature
       id="org.eclipse.emf.ecp.target.feature"
       label="ECP Target Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       The target platform feature for the EMF Client Platform, for developer use only.
diff --git a/features/org.eclipse.emf.ecp.target.feature/pom.xml b/features/org.eclipse.emf.ecp.target.feature/pom.xml
index 9c179c0..46229e6 100644
--- a/features/org.eclipse.emf.ecp.target.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.target.feature/pom.xml
@@ -5,12 +5,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.target.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-feature</packaging>
 
 	<build>
diff --git a/features/org.eclipse.emf.ecp.transaction.feature/feature.xml b/features/org.eclipse.emf.ecp.transaction.feature/feature.xml
index c436711..fc99430 100644
--- a/features/org.eclipse.emf.ecp.transaction.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.transaction.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.transaction.feature"
       label="ECP Transactional Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.ui.transaction"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.transaction.feature/pom.xml b/features/org.eclipse.emf.ecp.transaction.feature/pom.xml
index ff1ee84..5ba1f1f 100644
--- a/features/org.eclipse.emf.ecp.transaction.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.transaction.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-features-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>

   </parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.transaction.feature</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-feature</packaging>

 </project>

diff --git a/features/org.eclipse.emf.ecp.validation.view.feature/feature.xml b/features/org.eclipse.emf.ecp.validation.view.feature/feature.xml
index 07445db..416e7b0 100644
--- a/features/org.eclipse.emf.ecp.validation.view.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.validation.view.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.validation.view.feature"
       label="ECP Validation View (Highly Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.ui.validation"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.validation.view.feature/pom.xml b/features/org.eclipse.emf.ecp.validation.view.feature/pom.xml
index 716e365..06c5479 100644
--- a/features/org.eclipse.emf.ecp.validation.view.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.validation.view.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.validation.view.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.categorization.feature/feature.xml b/features/org.eclipse.emf.ecp.view.categorization.feature/feature.xml
index 2e00565..abbf7e4 100644
--- a/features/org.eclipse.emf.ecp.view.categorization.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.categorization.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.categorization.feature"
       label="EMF Forms Categorization Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.categorization.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.categorization.feature/pom.xml b/features/org.eclipse.emf.ecp.view.categorization.feature/pom.xml
index e4cea53..d7cd8e8 100644
--- a/features/org.eclipse.emf.ecp.view.categorization.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.categorization.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.categorization.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/feature.xml b/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/feature.xml
index 91abdbf..bb68842 100644
--- a/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.compoundcontrol.feature"
       label="EMF Forms Compound Control Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.compoundcontrol.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/pom.xml b/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/pom.xml
index b8ed152..c353b39 100644
--- a/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.compoundcontrol.feature/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
 
diff --git a/features/org.eclipse.emf.ecp.view.custom.feature/feature.xml b/features/org.eclipse.emf.ecp.view.custom.feature/feature.xml
index 7402db7..083e0b1 100644
--- a/features/org.eclipse.emf.ecp.view.custom.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.custom.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.custom.feature"
       label="EMF Forms Custom Control Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.custom.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.custom.feature/pom.xml b/features/org.eclipse.emf.ecp.view.custom.feature/pom.xml
index 38c2001..cffb28e 100644
--- a/features/org.eclipse.emf.ecp.view.custom.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.custom.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.custom.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.di.feature/feature.xml b/features/org.eclipse.emf.ecp.view.di.feature/feature.xml
index 1cd5520..0e142b2 100644
--- a/features/org.eclipse.emf.ecp.view.di.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.di.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.di.feature"
       label="EMF Forms Dependency Injection Feature (Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.model.common.di"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.di.feature/pom.xml b/features/org.eclipse.emf.ecp.view.di.feature/pom.xml
index 29b1d89..bb285f1 100644
--- a/features/org.eclipse.emf.ecp.view.di.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.di.feature/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
 
diff --git a/features/org.eclipse.emf.ecp.view.edapt.feature/feature.xml b/features/org.eclipse.emf.ecp.view.edapt.feature/feature.xml
index 9cc7183..7311b7a 100644
--- a/features/org.eclipse.emf.ecp.view.edapt.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.edapt.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.edapt.feature"
       label="EMF Forms IDE Tooling Edapt View Model Migration Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.edapt"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.edapt.feature/pom.xml b/features/org.eclipse.emf.ecp.view.edapt.feature/pom.xml
index 9544df8..27e15b2 100644
--- a/features/org.eclipse.emf.ecp.view.edapt.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.edapt.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.edapt.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   
   	<build>
diff --git a/features/org.eclipse.emf.ecp.view.group.feature/feature.xml b/features/org.eclipse.emf.ecp.view.group.feature/feature.xml
index d81ef90..a74ee68 100644
--- a/features/org.eclipse.emf.ecp.view.group.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.group.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.group.feature"
       label="EMF Forms Group Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.group.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.group.feature/pom.xml b/features/org.eclipse.emf.ecp.view.group.feature/pom.xml
index 49079c2..a97c790 100644
--- a/features/org.eclipse.emf.ecp.view.group.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.group.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.group.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.xml b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.xml
index 2f99b0f..b58b834 100644
--- a/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature"
       label="EMF Forms Collapsible Group Renderer using Nebula PGroup"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/pom.xml b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/pom.xml
index 40aaff2..73cf260 100644
--- a/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.groupedgrid.feature/feature.xml b/features/org.eclipse.emf.ecp.view.groupedgrid.feature/feature.xml
index 0f28fc7..c353868 100644
--- a/features/org.eclipse.emf.ecp.view.groupedgrid.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.groupedgrid.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.groupedgrid.feature"
       label="EMF Forms Grouped Grid Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.groupedgrid.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.groupedgrid.feature/pom.xml b/features/org.eclipse.emf.ecp.view.groupedgrid.feature/pom.xml
index 0ef2f2a..11038a4 100644
--- a/features/org.eclipse.emf.ecp.view.groupedgrid.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.groupedgrid.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.groupedgrid.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.horizontal.feature/feature.xml b/features/org.eclipse.emf.ecp.view.horizontal.feature/feature.xml
index ab3f384..e43533c 100644
--- a/features/org.eclipse.emf.ecp.view.horizontal.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.horizontal.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.horizontal.feature"
       label="EMF Forms Horizontal Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.horizontal.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.horizontal.feature/pom.xml b/features/org.eclipse.emf.ecp.view.horizontal.feature/pom.xml
index 0e958d7..7b6b255 100644
--- a/features/org.eclipse.emf.ecp.view.horizontal.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.horizontal.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.horizontal.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.indexdmr.feature/feature.xml b/features/org.eclipse.emf.ecp.view.indexdmr.feature/feature.xml
index 112510e..fe1bee1 100644
--- a/features/org.eclipse.emf.ecp.view.indexdmr.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.indexdmr.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.indexdmr.feature"
       label="EMF Forms Index DMR Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.indexdmr.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.indexdmr.feature/pom.xml b/features/org.eclipse.emf.ecp.view.indexdmr.feature/pom.xml
index f10d4f1..f402a41 100644
--- a/features/org.eclipse.emf.ecp.view.indexdmr.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.indexdmr.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.indexdmr.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/feature.xml b/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/feature.xml
index c4955a5..a46b922 100644
--- a/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.keyattributedmr.feature"
       label="EMF Forms Key Attribute DMR Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.keyattributedmr.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/pom.xml b/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/pom.xml
index c911c2a..9093ecd 100644
--- a/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.keyattributedmr.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.keyattributedmr.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.label.feature/feature.xml b/features/org.eclipse.emf.ecp.view.label.feature/feature.xml
index 9590d39..e5b18e6 100644
--- a/features/org.eclipse.emf.ecp.view.label.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.label.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.label.feature"
       label="EMF Forms Label Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.label.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.label.feature/pom.xml b/features/org.eclipse.emf.ecp.view.label.feature/pom.xml
index 7d405b1..b844047 100644
--- a/features/org.eclipse.emf.ecp.view.label.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.label.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.label.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.mappingdmr.feature/feature.xml b/features/org.eclipse.emf.ecp.view.mappingdmr.feature/feature.xml
index 212dc82..cda034d 100644
--- a/features/org.eclipse.emf.ecp.view.mappingdmr.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.mappingdmr.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.mappingdmr.feature"
       label="EMF Forms Mapping DMR Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.mappingdmr.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.mappingdmr.feature/pom.xml b/features/org.eclipse.emf.ecp.view.mappingdmr.feature/pom.xml
index f91f717..b447de8 100644
--- a/features/org.eclipse.emf.ecp.view.mappingdmr.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.mappingdmr.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.mappingdmr.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.model.controls.feature/feature.xml b/features/org.eclipse.emf.ecp.view.model.controls.feature/feature.xml
index dd30519..5c58e27 100644
--- a/features/org.eclipse.emf.ecp.view.model.controls.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.model.controls.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.model.controls.feature"
       label="EMF Forms View Model Controls"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.ui.view.editor.controls"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.model.controls.feature/pom.xml b/features/org.eclipse.emf.ecp.view.model.controls.feature/pom.xml
index 2cbc483..01782ff 100644
--- a/features/org.eclipse.emf.ecp.view.model.controls.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.model.controls.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.controls.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.model.editor.feature/feature.xml b/features/org.eclipse.emf.ecp.view.model.editor.feature/feature.xml
index 0491ec6..23e21b2 100644
--- a/features/org.eclipse.emf.ecp.view.model.editor.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.model.editor.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.model.editor.feature"
       label="EMF Forms View Model Wizard"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.model.editor"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.model.editor.feature/pom.xml b/features/org.eclipse.emf.ecp.view.model.editor.feature/pom.xml
index fb90ef6..8675d20 100644
--- a/features/org.eclipse.emf.ecp.view.model.editor.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.model.editor.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.editor.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.model.feature/feature.xml b/features/org.eclipse.emf.ecp.view.model.feature/feature.xml
index 0d6018d..9ffbd4a 100644
--- a/features/org.eclipse.emf.ecp.view.model.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.model.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.viewmodel.feature"
       label="EMF Forms Core Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.model.feature/pom.xml b/features/org.eclipse.emf.ecp.view.model.feature/pom.xml
index 54c0145..733f285 100644
--- a/features/org.eclipse.emf.ecp.view.model.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.model.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.viewmodel.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.rule.feature/feature.xml b/features/org.eclipse.emf.ecp.view.rule.feature/feature.xml
index 4d50ad3..92a8046 100644
--- a/features/org.eclipse.emf.ecp.view.rule.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.rule.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.rule.feature"
       label="EMF Forms Rule Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.rule"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.rule.feature/pom.xml b/features/org.eclipse.emf.ecp.view.rule.feature/pom.xml
index 98724fa..75311fc 100644
--- a/features/org.eclipse.emf.ecp.view.rule.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.rule.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.rule.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.section.feature/feature.xml b/features/org.eclipse.emf.ecp.view.section.feature/feature.xml
index 55670e3..9ba5933 100644
--- a/features/org.eclipse.emf.ecp.view.section.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.section.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.section.feature"
       label="EMF Forms Section Model (Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.section.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.section.feature/pom.xml b/features/org.eclipse.emf.ecp.view.section.feature/pom.xml
index de464e1..f6ca294 100644
--- a/features/org.eclipse.emf.ecp.view.section.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.section.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.section.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.stack.feature/feature.xml b/features/org.eclipse.emf.ecp.view.stack.feature/feature.xml
index 3324a61..bef06c3 100644
--- a/features/org.eclipse.emf.ecp.view.stack.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.stack.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.stack.feature"
       label="EMF Forms Stack Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.stack.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.stack.feature/pom.xml b/features/org.eclipse.emf.ecp.view.stack.feature/pom.xml
index 9ad0b4e..543d61c 100644
--- a/features/org.eclipse.emf.ecp.view.stack.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.stack.feature/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.stack.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
   
     <build>
diff --git a/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/feature.xml b/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/feature.xml
index 2ad1b3b..c349bd8 100644
--- a/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.table.celleditor.rcp.feature"
       label="EMF Forms Table UI SWT Additional Cell Editors (non-RAP)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.table.celleditor.rcp"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/pom.xml b/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/pom.xml
index 8b6e85d..bbf0af6 100644
--- a/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.table.celleditor.rcp.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.celleditor.rcp.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.table.feature/feature.xml b/features/org.eclipse.emf.ecp.view.table.feature/feature.xml
index 0cfc0d5..bb64f2c 100644
--- a/features/org.eclipse.emf.ecp.view.table.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.table.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.table.feature"
       label="EMF Forms Table Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.table.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.table.feature/pom.xml b/features/org.eclipse.emf.ecp.view.table.feature/pom.xml
index 7e40a49..85d33fc 100644
--- a/features/org.eclipse.emf.ecp.view.table.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.table.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/feature.xml b/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/feature.xml
index 3866245..593ee6c 100644
--- a/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature"
       label="EMF Forms Nebula Grid Table UI Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.table.ui.nebula.grid"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/pom.xml b/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/pom.xml
index f85572c..1bfabb3 100644
--- a/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.ui.nebula.grid.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/feature.xml b/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/feature.xml
index 4199943..30384cb 100644
--- a/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.table.ui.rcp.feature"
       label="EMF Forms Table UI RCP Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.table.ui.rcp"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/pom.xml b/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/pom.xml
index 020545f..c10206b 100644
--- a/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.table.ui.rcp.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.ui.rcp.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/feature.xml b/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/feature.xml
index 823bdc1..cb3182e 100644
--- a/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature"
       label="EMF Forms Persist Table State Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.table.ui.swt.persistedstate"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/pom.xml b/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/pom.xml
index 12077b0..c05c349 100644
--- a/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.ui.swt.persistedstate.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.template.feature/feature.xml b/features/org.eclipse.emf.ecp.view.template.feature/feature.xml
index 3e7b988..7e0f647 100644
--- a/features/org.eclipse.emf.ecp.view.template.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.template.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.template.feature"
       label="EMF Forms Template  Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.template.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.template.feature/pom.xml b/features/org.eclipse.emf.ecp.view.template.feature/pom.xml
index 9e2ea20..66650a9 100644
--- a/features/org.eclipse.emf.ecp.view.template.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.template.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.template.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/feature.xml b/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/feature.xml
index 71ca6af..e17956d 100644
--- a/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.treemasterdetail.feature"
       label="EMF Forms Master-Detail Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.treemasterdetail.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/pom.xml b/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/pom.xml
index 5475536..8fac1c0 100644
--- a/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.treemasterdetail.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.treemasterdetail.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.unset.feature/feature.xml b/features/org.eclipse.emf.ecp.view.unset.feature/feature.xml
index ec09836..8c1452a 100644
--- a/features/org.eclipse.emf.ecp.view.unset.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.unset.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.unset.feature"
       label="EMF Forms Unset Service"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emf.ecp.view.unset"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.unset.feature/pom.xml b/features/org.eclipse.emf.ecp.view.unset.feature/pom.xml
index 5ba7d19..ecc7025 100644
--- a/features/org.eclipse.emf.ecp.view.unset.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.unset.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.unset.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.validation.bean.feature/feature.xml b/features/org.eclipse.emf.ecp.view.validation.bean.feature/feature.xml
index f1a48e4..4fa7749 100644
--- a/features/org.eclipse.emf.ecp.view.validation.bean.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.validation.bean.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.validation.bean.feature"
       label="EMF Forms Bean Validation Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.validation.bean"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.validation.bean.feature/pom.xml b/features/org.eclipse.emf.ecp.view.validation.bean.feature/pom.xml
index abe8d59..3806656 100644
--- a/features/org.eclipse.emf.ecp.view.validation.bean.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.validation.bean.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.validation.bean.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.validation.feature/feature.xml b/features/org.eclipse.emf.ecp.view.validation.feature/feature.xml
index fb89c23..a280304 100644
--- a/features/org.eclipse.emf.ecp.view.validation.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.validation.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.validation.feature"
       label="EMF Forms Validation Service"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.validation"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.validation.feature/pom.xml b/features/org.eclipse.emf.ecp.view.validation.feature/pom.xml
index ff7f8db..f61246e 100644
--- a/features/org.eclipse.emf.ecp.view.validation.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.validation.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.validation.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.validation.initial.feature/feature.xml b/features/org.eclipse.emf.ecp.view.validation.initial.feature/feature.xml
index e7e2f4b..8da5119 100644
--- a/features/org.eclipse.emf.ecp.view.validation.initial.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.validation.initial.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.validation.initial.feature"
       label="EMF Forms Deep Validation Initial Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.validation"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.validation.initial.feature/pom.xml b/features/org.eclipse.emf.ecp.view.validation.initial.feature/pom.xml
index a32bb03..b70eeb5 100644
--- a/features/org.eclipse.emf.ecp.view.validation.initial.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.validation.initial.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.validation.initial.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.vertical.feature/feature.xml b/features/org.eclipse.emf.ecp.view.vertical.feature/feature.xml
index 3d6295e..1e8a0a7 100644
--- a/features/org.eclipse.emf.ecp.view.vertical.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.vertical.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.vertical.feature"
       label="EMF Forms Vertical Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.vertical.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.vertical.feature/pom.xml b/features/org.eclipse.emf.ecp.view.vertical.feature/pom.xml
index 9467799..b0de7b6 100644
--- a/features/org.eclipse.emf.ecp.view.vertical.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.vertical.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.vertical.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.view.viewproxy.feature/feature.xml b/features/org.eclipse.emf.ecp.view.viewproxy.feature/feature.xml
index d51758c..2c42a76 100644
--- a/features/org.eclipse.emf.ecp.view.viewproxy.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.view.viewproxy.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.viewproxy.feature"
       label="EMF Forms View Proxy Model"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.viewproxy.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emf.ecp.view.viewproxy.feature/pom.xml b/features/org.eclipse.emf.ecp.view.viewproxy.feature/pom.xml
index 57f2a5f..ff846d3 100644
--- a/features/org.eclipse.emf.ecp.view.viewproxy.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.view.viewproxy.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.viewproxy.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emf.ecp.workspace.feature/feature.xml b/features/org.eclipse.emf.ecp.workspace.feature/feature.xml
index 7d10d94..5c4cb44 100644
--- a/features/org.eclipse.emf.ecp.workspace.feature/feature.xml
+++ b/features/org.eclipse.emf.ecp.workspace.feature/feature.xml
@@ -12,12 +12,12 @@
 <feature
       id="org.eclipse.emf.ecp.workspace.feature"
       label="ECP File Integration (Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.workspace.core"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       Integration for file and Eclipse workspace persistence.
diff --git a/features/org.eclipse.emf.ecp.workspace.feature/pom.xml b/features/org.eclipse.emf.ecp.workspace.feature/pom.xml
index 931f596..ec2eedb 100644
--- a/features/org.eclipse.emf.ecp.workspace.feature/pom.xml
+++ b/features/org.eclipse.emf.ecp.workspace.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.workspace.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.common.prevalidation.feature/feature.xml b/features/org.eclipse.emfforms.common.prevalidation.feature/feature.xml
index 873a9a5..22438e3 100644
--- a/features/org.eclipse.emfforms.common.prevalidation.feature/feature.xml
+++ b/features/org.eclipse.emfforms.common.prevalidation.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.common.prevalidation.feature"
       label="EMFForms PreValidation Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.common.prevalidation"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.common.prevalidation.feature/pom.xml b/features/org.eclipse.emfforms.common.prevalidation.feature/pom.xml
index 5a80bba..597f8cf 100644
--- a/features/org.eclipse.emfforms.common.prevalidation.feature/pom.xml
+++ b/features/org.eclipse.emfforms.common.prevalidation.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.common.prevalidation.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.core.bazaar.feature/feature.xml b/features/org.eclipse.emfforms.core.bazaar.feature/feature.xml
index 046e3b9..54b6985 100644
--- a/features/org.eclipse.emfforms.core.bazaar.feature/feature.xml
+++ b/features/org.eclipse.emfforms.core.bazaar.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emfforms.core.bazaar.feature"
       label="Bazaar Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.core.bazaar"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.core.bazaar.feature/pom.xml b/features/org.eclipse.emfforms.core.bazaar.feature/pom.xml
index 6f82ca0..fa8691c 100644
--- a/features/org.eclipse.emfforms.core.bazaar.feature/pom.xml
+++ b/features/org.eclipse.emfforms.core.bazaar.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.core.bazaar.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.datatemplate.feature/feature.xml b/features/org.eclipse.emfforms.datatemplate.feature/feature.xml
index 8acf25f..9658e34 100644
--- a/features/org.eclipse.emfforms.datatemplate.feature/feature.xml
+++ b/features/org.eclipse.emfforms.datatemplate.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.datatemplate.feature"
       label="EMF Forms Data Templates"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.datatemplate.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.datatemplate.feature/pom.xml b/features/org.eclipse.emfforms.datatemplate.feature/pom.xml
index 560774e..ee0a9ca 100644
--- a/features/org.eclipse.emfforms.datatemplate.feature/pom.xml
+++ b/features/org.eclipse.emfforms.datatemplate.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.datatemplate.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.datatemplate.ide.feature/feature.xml b/features/org.eclipse.emfforms.datatemplate.ide.feature/feature.xml
index d7bbbf7..38bfa95 100644
--- a/features/org.eclipse.emfforms.datatemplate.ide.feature/feature.xml
+++ b/features/org.eclipse.emfforms.datatemplate.ide.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.datatemplate.ide.feature"
       label="EMF Forms Datatemplate Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.datatemplate.tooling"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
@@ -31,4 +31,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.emfforms.ide.datatemplate.builder"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/features/org.eclipse.emfforms.datatemplate.ide.feature/pom.xml b/features/org.eclipse.emfforms.datatemplate.ide.feature/pom.xml
index 30ccf27..a0840f6 100644
--- a/features/org.eclipse.emfforms.datatemplate.ide.feature/pom.xml
+++ b/features/org.eclipse.emfforms.datatemplate.ide.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.datatemplate.ide.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.editor.feature/feature.xml b/features/org.eclipse.emfforms.editor.feature/feature.xml
index b3954d5..f1cb651 100644
--- a/features/org.eclipse.emfforms.editor.feature/feature.xml
+++ b/features/org.eclipse.emfforms.editor.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.editor.feature"
       label="EMF Forms Ecore Editor"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.editor"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.editor.feature/pom.xml b/features/org.eclipse.emfforms.editor.feature/pom.xml
index bb108b5..a2da569 100644
--- a/features/org.eclipse.emfforms.editor.feature/pom.xml
+++ b/features/org.eclipse.emfforms.editor.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.editor.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.editor.genmodel.util.feature/feature.xml b/features/org.eclipse.emfforms.editor.genmodel.util.feature/feature.xml
index 5918901..3f58de8 100644
--- a/features/org.eclipse.emfforms.editor.genmodel.util.feature/feature.xml
+++ b/features/org.eclipse.emfforms.editor.genmodel.util.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.editor.genmodel.util.feature"
       label="EMF Forms GenModel Editor Util"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.editor.genmodel.util"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.editor.genmodel.util.feature/pom.xml b/features/org.eclipse.emfforms.editor.genmodel.util.feature/pom.xml
index f8ead17..572f4ee 100644
--- a/features/org.eclipse.emfforms.editor.genmodel.util.feature/pom.xml
+++ b/features/org.eclipse.emfforms.editor.genmodel.util.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.editor.genmodel.util.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.rulerepository.feature/feature.xml b/features/org.eclipse.emfforms.rulerepository.feature/feature.xml
index 39c78f3..e6246c0 100644
--- a/features/org.eclipse.emfforms.rulerepository.feature/feature.xml
+++ b/features/org.eclipse.emfforms.rulerepository.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emfforms.rulerepository.feature"
       label="EMF Forms Rule Repository Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.rulerepository.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.rulerepository.feature/pom.xml b/features/org.eclipse.emfforms.rulerepository.feature/pom.xml
index 625f38e..6c5619c 100644
--- a/features/org.eclipse.emfforms.rulerepository.feature/pom.xml
+++ b/features/org.eclipse.emfforms.rulerepository.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.rulerepository.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.swt.control.multiattribute.feature/feature.xml b/features/org.eclipse.emfforms.swt.control.multiattribute.feature/feature.xml
index 2ca4672..d6f6042 100644
--- a/features/org.eclipse.emfforms.swt.control.multiattribute.feature/feature.xml
+++ b/features/org.eclipse.emfforms.swt.control.multiattribute.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.swt.control.multiattribute.feature"
       label="EMF Forms SWT Control for Multi EAttribtues"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="%providerName"
       plugin="org.eclipse.emfforms.swt.control.multiattribute"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.swt.control.multiattribute.feature/pom.xml b/features/org.eclipse.emfforms.swt.control.multiattribute.feature/pom.xml
index 0c24b81..112abb7 100644
--- a/features/org.eclipse.emfforms.swt.control.multiattribute.feature/pom.xml
+++ b/features/org.eclipse.emfforms.swt.control.multiattribute.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.control.multiattribute.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.xml b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.xml
index b977fd1..3742c84 100644
--- a/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.xml
+++ b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.swt.control.text.autocomplete.feature"
       label="EMF Forms SWT Text Control with Autocomplete Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.swt.control.text.autocomplete"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/pom.xml b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/pom.xml
index cb1f12b..4a87abc 100644
--- a/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/pom.xml
+++ b/features/org.eclipse.emfforms.swt.control.text.autocomplete.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.control.text.autocomplete.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.swt.control.text.richtext.feature/feature.xml b/features/org.eclipse.emfforms.swt.control.text.richtext.feature/feature.xml
index d529a84..bb0c560 100644
--- a/features/org.eclipse.emfforms.swt.control.text.richtext.feature/feature.xml
+++ b/features/org.eclipse.emfforms.swt.control.text.richtext.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.swt.control.text.richtext.feature"
       label="EMF Forms Rich Text Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.swt.control.text.richtext"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.swt.control.text.richtext.feature/pom.xml b/features/org.eclipse.emfforms.swt.control.text.richtext.feature/pom.xml
index fe36320..59c7315 100644
--- a/features/org.eclipse.emfforms.swt.control.text.richtext.feature/pom.xml
+++ b/features/org.eclipse.emfforms.swt.control.text.richtext.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.control.text.richtext.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.swt.controlgrid.feature/feature.xml b/features/org.eclipse.emfforms.swt.controlgrid.feature/feature.xml
index e8146dd..8458591 100644
--- a/features/org.eclipse.emfforms.swt.controlgrid.feature/feature.xml
+++ b/features/org.eclipse.emfforms.swt.controlgrid.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.swt.controlgrid.feature"
       label="EMF Forms Control Grid SWT Feature (Experimental)"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.view.controlgrid.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.swt.controlgrid.feature/pom.xml b/features/org.eclipse.emfforms.swt.controlgrid.feature/pom.xml
index d5bfe1c..b2a36e7 100644
--- a/features/org.eclipse.emfforms.swt.controlgrid.feature/pom.xml
+++ b/features/org.eclipse.emfforms.swt.controlgrid.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.swt.controlgrid.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.emfforms.view.annotation.feature/feature.xml b/features/org.eclipse.emfforms.view.annotation.feature/feature.xml
index c5cacd8..a5f5ed0 100644
--- a/features/org.eclipse.emfforms.view.annotation.feature/feature.xml
+++ b/features/org.eclipse.emfforms.view.annotation.feature/feature.xml
@@ -2,11 +2,11 @@
 <feature
       id="org.eclipse.emfforms.view.annotation.feature"
       label="EMF Forms Annotation View Model Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emfforms.view.annotation.model"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/features/org.eclipse.emfforms.view.annotation.feature/pom.xml b/features/org.eclipse.emfforms.view.annotation.feature/pom.xml
index fb3489a..dab4968 100644
--- a/features/org.eclipse.emfforms.view.annotation.feature/pom.xml
+++ b/features/org.eclipse.emfforms.view.annotation.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emfforms.view.annotation.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.xml b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.xml
index 3beba76..a9d4b74 100644
--- a/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.xml
+++ b/features/spreadsheet/org.eclipse.emfforms.spreadsheet.feature/feature.xml
@@ -7,7 +7,7 @@
       plugin="org.eclipse.emfforms.spreadsheet.core"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/i18n/org.eclipse.emf.ecp.core.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.core.nl_de/META-INF/MANIFEST.MF
index e147ac6..d656127 100644
--- a/i18n/org.eclipse.emf.ecp.core.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.core.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.core German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.core.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.core.nl_de/pom.xml
index 3762a69..0a5a3fe 100644
--- a/i18n/org.eclipse.emf.ecp.core.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.core.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.core.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/META-INF/MANIFEST.MF
index adfd2fe..0b5ee35 100644
--- a/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.diffmerge.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.diffmerge.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.diffmerge.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/pom.xml
index 64d7800..8817c0f 100644
--- a/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.diffmerge.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/META-INF/MANIFEST.MF
index 256303d..08a8682 100644
--- a/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.diffmerge.swt German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.swt.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.diffmerge.swt;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/pom.xml
index 1db1920..1b0c407 100644
--- a/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.diffmerge.swt.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.diffmerge.swt.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.edit.nl_de/META-INF/MANIFEST.MF
index 4a0b4e6..c0ed114 100644
--- a/i18n/org.eclipse.emf.ecp.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.edit.nl_de/pom.xml
index ac050a4..a26d446 100644
--- a/i18n/org.eclipse.emf.ecp.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/META-INF/MANIFEST.MF
index fa3b51a..26224fd 100644
--- a/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.edit.swt German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.swt.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/pom.xml
index 47f0ac9..06dc96a 100644
--- a/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.edit.swt.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.edit.swt.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/META-INF/MANIFEST.MF
index 81369e1..723bd67 100644
--- a/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.ide.editor.view German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/pom.xml
index 9e888a9..63de625 100644
--- a/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.ide.editor.view.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ide.editor.view.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/META-INF/MANIFEST.MF
index 0fdcf6b..a9442b8 100644
--- a/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.makeithappen.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.makeithappen.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/pom.xml
index e79809c..d0b2be3 100644
--- a/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.makeithappen.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.makeithappen.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/META-INF/MANIFEST.MF
index eb7fab8..f814acc 100644
--- a/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.makeithappen.wizards German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.makeithappen.wizards.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.makeithappen.wizards;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.makeithappen.wizards;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/pom.xml
index 0ce4a94..46e118b 100644
--- a/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.makeithappen.wizards.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.makeithappen.wizards.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/META-INF/MANIFEST.MF
index 4e21994..545947f 100644
--- a/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.test.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.test.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.test.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.test.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/pom.xml
index c4b16a2..e5be428 100644
--- a/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.test.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.test.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/META-INF/MANIFEST.MF
index 00f9092..e32ab7a 100644
--- a/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.ui.e3 German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.e3.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.e3;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.e3;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/pom.xml
index 9eef866..2fd2902 100644
--- a/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.ui.e3.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.e3.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.ui.nl_de/META-INF/MANIFEST.MF
index 1e62bba..c059c6f 100644
--- a/i18n/org.eclipse.emf.ecp.ui.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.ui.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.ui German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.ui.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.ui.nl_de/pom.xml
index 29720d8..cd0543c 100644
--- a/i18n/org.eclipse.emf.ecp.ui.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.ui.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/META-INF/MANIFEST.MF
index a6dfabd..5120acd 100644
--- a/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.ui.validation German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/pom.xml
index 603e8ab..51c3b2d 100644
--- a/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.ui.validation.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.validation.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/META-INF/MANIFEST.MF
index 637804c..e8e261e 100644
--- a/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.ui.view.editor.controls German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/pom.xml
index 521e4c0..51d02eb 100644
--- a/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.ui.view.editor.controls.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.ui.view.editor.controls.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.validation.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.validation.nl_de/META-INF/MANIFEST.MF
index 6962461..bc31551 100644
--- a/i18n/org.eclipse.emf.ecp.validation.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.validation.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.validation German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.validation.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.validation.nl_de/pom.xml
index 7fba00d..d60cfed 100644
--- a/i18n/org.eclipse.emf.ecp.validation.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.validation.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.validation.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/META-INF/MANIFEST.MF
index aeb7ccc..a54f973 100644
--- a/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.categorization.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/pom.xml
index 56023f3..aed41b6 100644
--- a/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.categorization.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.categorization.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/META-INF/MANIFEST.MF
index 3b45c97..ae9ebd7 100644
--- a/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.core.swt German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.core.swt.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/pom.xml
index ed9fb8d..215475f 100644
--- a/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.core.swt.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.core.swt.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/META-INF/MANIFEST.MF
index 0d4f382..91a8e29 100644
--- a/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.custom.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.custom.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.custom.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/pom.xml
index 85df167..87dd2eb 100644
--- a/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.custom.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.custom.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/META-INF/MANIFEST.MF
index e533ef3..20029d4 100644
--- a/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.custom.model German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.model.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/pom.xml
index 9550a12..8501ec0 100644
--- a/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.custom.model.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.custom.model.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/META-INF/MANIFEST.MF
index 71a58e1..dfbd60b 100644
--- a/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.dynamictree.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/pom.xml
index def8857..02a8469 100644
--- a/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.dynamictree.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/META-INF/MANIFEST.MF
index 854f354..e1f76e6 100644
--- a/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.group.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.group.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.group.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/pom.xml
index 2b49152..afd92e7 100644
--- a/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.group.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.group.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/META-INF/MANIFEST.MF
index 6e9eeea..c42fd23 100644
--- a/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.groupedgrid.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.groupedgrid.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.groupedgrid.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/pom.xml
index d625ce4..2b8fe45 100644
--- a/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.groupedgrid.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/META-INF/MANIFEST.MF
index c5161a1..f3d29ff 100644
--- a/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.horizontal.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.horizontal.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.horizontal.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/pom.xml
index e9564bf..72f1391 100644
--- a/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.horizontal.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/META-INF/MANIFEST.MF
index 3b87fcb..3a58a45 100644
--- a/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.label.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.label.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.label.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.label.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/pom.xml
index b753926..93dc9b5 100644
--- a/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.label.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.label.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/META-INF/MANIFEST.MF
index 6daa904..1cfc8c0 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/pom.xml
index 35b1ec1..b3ee97a 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/META-INF/MANIFEST.MF
index 43b909c..45ee713 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.model.editor German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.editor.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model.editor;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/pom.xml
index 0e73ed4..2472daf 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.model.editor.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.editor.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.model.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.model.nl_de/META-INF/MANIFEST.MF
index 1005a46..35213be 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.model.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.model German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.model.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.model.nl_de/pom.xml
index befdc2c..9c6b190 100644
--- a/i18n/org.eclipse.emf.ecp.view.model.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.model.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/META-INF/MANIFEST.MF
index 5c969b8..4360947 100644
--- a/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.rule.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.rule.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/pom.xml
index b25490b..55c83b5 100644
--- a/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.rule.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.rule.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/META-INF/MANIFEST.MF
index 6a33fb0..a334fcd 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.table.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/pom.xml
index 800de57..bca33e6 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.table.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/META-INF/MANIFEST.MF
index f742654..88d716d 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.table.model German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/pom.xml
index 3183aa3..634b7ae 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.table.model.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.model.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/META-INF/MANIFEST.MF
index 7b27198..d359055 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/META-INF/MANIFEST.MF
@@ -2,8 +2,8 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Nebula Grid Table UI German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/pom.xml
index 4c91eee..f72e9e7 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.ui.nebula.grid.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/META-INF/MANIFEST.MF
index f82f2b2..d53a413 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table UI SWT German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: OSGI-INF/l10n/bundle
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.swt.nl_de
diff --git a/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/pom.xml
index 0b9dd05..c283b56 100644
--- a/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.table.ui.swt.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.table.ui.swt.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/META-INF/MANIFEST.MF
index 717c17f..431b7c1 100644
--- a/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.template.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.template.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/pom.xml
index 703739a..6885fde 100644
--- a/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.template.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.template.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/META-INF/MANIFEST.MF
index e8a82bd..d58080a 100644
--- a/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.treemasterdetail.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/pom.xml
index a33dac2..fc8cda8 100644
--- a/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.treemasterdetail.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/META-INF/MANIFEST.MF b/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/META-INF/MANIFEST.MF
index 937a7c1..3e9c42c 100644
--- a/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/META-INF/MANIFEST.MF
+++ b/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: org.eclipse.emf.ecp.view.vertical.model.edit German NLS Support
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.model.edit.nl_de;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.vertical.model.edit;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.vertical.model.edit;bundle-version="[1.20.0,1.21.0)"
diff --git a/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/pom.xml b/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/pom.xml
index 726ba18..b3ab4fa 100644
--- a/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/pom.xml
+++ b/i18n/org.eclipse.emf.ecp.view.vertical.model.edit.nl_de/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-i18n-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.i18n/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.vertical.model.edit.nl_de</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.3x.product b/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.3x.product
index 61bef18..5ea11a2 100644
--- a/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.3x.product
+++ b/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.3x.product
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="%productName" uid="org.eclipse.emf.ecp.3x" id="org.eclipse.emf.ecp.application.e3.product" application="org.eclipse.emf.ecp.application.e3.application" version="1.19.0.qualifier" useFeatures="true" includeLaunchers="true">
+<product name="%productName" uid="org.eclipse.emf.ecp.3x" id="org.eclipse.emf.ecp.application.e3.product" application="org.eclipse.emf.ecp.application.e3.application" version="1.20.0.qualifier" useFeatures="true" includeLaunchers="true">
 
    <aboutInfo>
       <image path="/org.eclipse.emf.ecp.application.e3/icons/eclipse_lg.gif"/>
diff --git a/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.application.e4.product b/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.application.e4.product
index 29a365d..ba0ce5f 100644
--- a/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.application.e4.product
+++ b/releng/org.eclipse.emf.ecp.products/org.eclipse.emf.ecp.application.e4.product
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="org.eclipse.emf.ecp.e4.application" uid="org.eclipse.emf.ecp.application.e4.demo" id="org.eclipse.emf.ecp.application.e4.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.19.0.qualifier" useFeatures="false" includeLaunchers="true">
+<product name="org.eclipse.emf.ecp.e4.application" uid="org.eclipse.emf.ecp.application.e4.demo" id="org.eclipse.emf.ecp.application.e4.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.20.0.qualifier" useFeatures="false" includeLaunchers="true">
 
    <configIni use="default">
    </configIni>
diff --git a/releng/org.eclipse.emf.ecp.products/pom.xml b/releng/org.eclipse.emf.ecp.products/pom.xml
index d95b1f5..cac3414 100644
--- a/releng/org.eclipse.emf.ecp.products/pom.xml
+++ b/releng/org.eclipse.emf.ecp.products/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.products</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-repository</packaging>
   
   <build>
diff --git a/releng/org.eclipse.emf.ecp.rap.parent/pom.xml b/releng/org.eclipse.emf.ecp.rap.parent/pom.xml
index a9813c6..e4b709d 100644
--- a/releng/org.eclipse.emf.ecp.rap.parent/pom.xml
+++ b/releng/org.eclipse.emf.ecp.rap.parent/pom.xml
@@ -5,7 +5,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-rap-parent</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	
 	<!-- Parent for the rap product. Needed to reduce environments.
diff --git a/releng/org.eclipse.emf.ecp.rap.products/pom.xml b/releng/org.eclipse.emf.ecp.rap.products/pom.xml
index 07d67c9..1171c45 100644
--- a/releng/org.eclipse.emf.ecp.rap.products/pom.xml
+++ b/releng/org.eclipse.emf.ecp.rap.products/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-rap-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../org.eclipse.emf.ecp.rap.parent/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.rap.products</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-repository</packaging>
 
   <properties>
diff --git a/releng/org.eclipse.emf.ecp.releng.bundles/pom.xml b/releng/org.eclipse.emf.ecp.releng.bundles/pom.xml
index a886e0b..3002863 100644
--- a/releng/org.eclipse.emf.ecp.releng.bundles/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.bundles/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-bundles-parent</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
@@ -184,6 +184,10 @@
 		<module>../../bundles/org.eclipse.emf.ecp.view.template.annotation.model.edit</module>
 
 		<!-- IDE -->
+		<module>../../bundles/org.eclipse.emfforms.ide.builder</module>
+		<module>../../bundles/org.eclipse.emfforms.ide.ecore.builder</module>
+		<module>../../bundles/org.eclipse.emfforms.ide.viewtemplate.builder</module>
+		<module>../../bundles/org.eclipse.emfforms.ide.datatemplate.builder</module>
 		<module>../../bundles/org.eclipse.emf.ecp.ide.editor.view</module>
 		<module>../../bundles/org.eclipse.emf.ecp.ide.editor.viewmodel</module>
 		<module>../../bundles/org.eclipse.emf.ecp.ide.view.service</module>
diff --git a/releng/org.eclipse.emf.ecp.releng.examples/pom.xml b/releng/org.eclipse.emf.ecp.releng.examples/pom.xml
index 8a6ca90..48e784c 100644
--- a/releng/org.eclipse.emf.ecp.releng.examples/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.examples/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-examples-parent</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
diff --git a/releng/org.eclipse.emf.ecp.releng.features/pom.xml b/releng/org.eclipse.emf.ecp.releng.features/pom.xml
index 6eb10a5..3253f1e 100644
--- a/releng/org.eclipse.emf.ecp.releng.features/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.features/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-features-parent</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<modules>
diff --git a/releng/org.eclipse.emf.ecp.releng.i18n/pom.xml b/releng/org.eclipse.emf.ecp.releng.i18n/pom.xml
index df49810..80e73d8 100644
--- a/releng/org.eclipse.emf.ecp.releng.i18n/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.i18n/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-i18n-parent</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<!-- modules -->
diff --git a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
index 286481a..77eb249 100644
--- a/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng.tests/pom.xml
@@ -5,12 +5,12 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-tests-parent</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>
 	</parent>
 	
@@ -110,6 +110,7 @@
 		<module>../../tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.model.edit.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.model.integrationtest</module>
+		<module>../../tests/org.eclipse.emf.ecp.view.model.provider.generator.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.model.provider.xmi.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.view.model.preview.common.test</module>		
 		
@@ -142,6 +143,7 @@
 		<module>../../tests/org.eclipse.emf.ecp.view.control.multireference.tests</module>
 		
 		<module>../../tests/org.eclipse.emfforms.editor.ecore.test</module>
+		<module>../../tests/org.eclipse.emfforms.ide.builder.test</module>
 
 		<module>../../tests/org.eclipse.emf.ecp.core.rap.test</module>
 		<module>../../tests/org.eclipse.emf.ecp.core.rap.concurrent.test</module>
diff --git a/releng/org.eclipse.emf.ecp.releng/pom.xml b/releng/org.eclipse.emf.ecp.releng/pom.xml
index e0ff1be..0545ee5 100644
--- a/releng/org.eclipse.emf.ecp.releng/pom.xml
+++ b/releng/org.eclipse.emf.ecp.releng/pom.xml
@@ -5,14 +5,14 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>ecp-parent</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<properties>
 		<tycho-version>1.2.0</tycho-version>
 		<tycho-extras-version>1.2.0</tycho-extras-version>
 		<javadoc-version>2.10.3</javadoc-version>
-		<ecp-version>1.19.0</ecp-version>
+		<ecp-version>1.20.0</ecp-version>
 		<javadoc-title>EMF Client Platform ${ecp-version} API</javadoc-title>
 		<maven.antrun.plugin.version>1.7</maven.antrun.plugin.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/releng/org.eclipse.emf.ecp.repository.target/category.xml b/releng/org.eclipse.emf.ecp.repository.target/category.xml
index dea7278..879e736 100644
--- a/releng/org.eclipse.emf.ecp.repository.target/category.xml
+++ b/releng/org.eclipse.emf.ecp.repository.target/category.xml
@@ -219,7 +219,7 @@
    <feature id="org.eclipse.emf.ecp.i18n.feature" version="0.0.0">
       <category name="org.eclipse.emf.ecp.i18n"/>
    </feature>
-   <bundle id="org.eclipse.emf.ecp.view.table.validation" version="1.19.0.qualifier">
+   <bundle id="org.eclipse.emf.ecp.view.table.validation" version="1.20.0.qualifier">
       <category name="org.eclipse.emf.ecp.emfforms"/>
    </bundle>
    <category-def name="org.eclipse.emf.ecp.sdk" label="All SDKs  (install one of these)">
diff --git a/releng/org.eclipse.emf.ecp.repository.target/pom.xml b/releng/org.eclipse.emf.ecp.repository.target/pom.xml
index 5ce66d6..773e63e 100644
--- a/releng/org.eclipse.emf.ecp.repository.target/pom.xml
+++ b/releng/org.eclipse.emf.ecp.repository.target/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.site.target.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-repository</packaging>
 
 	<build>
diff --git a/releng/org.eclipse.emf.ecp.repository/pom.xml b/releng/org.eclipse.emf.ecp.repository/pom.xml
index 4d1aeb9..e4a2d34 100644
--- a/releng/org.eclipse.emf.ecp.repository/pom.xml
+++ b/releng/org.eclipse.emf.ecp.repository/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-features-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.site.feature</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-repository</packaging>
 
 	<build>
diff --git a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.target b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.target
index 14c643d..9c94114 100644
--- a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.target
+++ b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP.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="ECP RAP" sequenceNumber="1542719392">
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="ECP RAP" sequenceNumber="1545255804">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
@@ -14,7 +14,7 @@
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.platform.ide" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.10milestones"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.10"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
diff --git a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.target b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.target
index a6e6fb3..c126ad5 100644
--- a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.target
+++ b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.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="ECP RAP with ECP" sequenceNumber="1542719487">
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="ECP RAP with ECP" sequenceNumber="1548626672">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
@@ -14,7 +14,7 @@
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.platform.ide" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.10milestones"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.10"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
@@ -89,7 +89,7 @@
       <unit id="org.eclipse.emf.ecp.rap.sdk.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.ecp.rap.util.feature.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/ecp/releases/releases_target_119"/>
+      <repository location="http://download.eclipse.org/ecp/releases/releases_target_120"/>
     </location>
   </locations>
 </target>
diff --git a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.tpd b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.tpd
index 3a7ff40..53603c4 100644
--- a/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.tpd
+++ b/releng/org.eclipse.emf.ecp.target.rap/ecpRAP_withECP.tpd
@@ -4,7 +4,7 @@
 
 include "ecpRAP.tpd"
 
-location "http://download.eclipse.org/ecp/releases/releases_target_119"{
+location "http://download.eclipse.org/ecp/releases/releases_target_120"{
 	org.eclipse.emf.ecp.rap.sdk.feature.feature.group lazy
 	org.eclipse.emf.ecp.rap.util.feature.feature.group lazy
 	org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group lazy
diff --git a/releng/org.eclipse.emf.ecp.target.rap/pom.xml b/releng/org.eclipse.emf.ecp.target.rap/pom.xml
index b9ff61c..5a1b040 100644
--- a/releng/org.eclipse.emf.ecp.target.rap/pom.xml
+++ b/releng/org.eclipse.emf.ecp.target.rap/pom.xml
@@ -5,11 +5,11 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>

   </parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>ecpRAP</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-target-definition</packaging>

 </project>
\ No newline at end of file
diff --git a/releng/org.eclipse.emf.ecp.target.rcp/ecp.target b/releng/org.eclipse.emf.ecp.target.rcp/ecp.target
index 294542a..431562d 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp/ecp.target
+++ b/releng/org.eclipse.emf.ecp.target.rcp/ecp.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="ECP RCP" sequenceNumber="1542719243">
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="ECP RCP" sequenceNumber="1545254752">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
@@ -14,7 +14,7 @@
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.platform.ide" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.10milestones"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.10"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
diff --git a/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd b/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd
index a565f634..db01d23 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd
+++ b/releng/org.eclipse.emf.ecp.target.rcp/ecp.tpd
@@ -10,7 +10,7 @@
 	org.eclipse.swtbot.feature.group lazy
 }
 
-location "http://download.eclipse.org/eclipse/updates/4.10milestones" {
+location "http://download.eclipse.org/eclipse/updates/4.10" {
 	org.eclipse.equinox.sdk.feature.group lazy
 	org.eclipse.platform.ide lazy
 }
diff --git a/releng/org.eclipse.emf.ecp.target.rcp/pom.xml b/releng/org.eclipse.emf.ecp.target.rcp/pom.xml
index 2b30be0..21ade50 100644
--- a/releng/org.eclipse.emf.ecp.target.rcp/pom.xml
+++ b/releng/org.eclipse.emf.ecp.target.rcp/pom.xml
@@ -5,11 +5,11 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng/</relativePath>

   </parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>ecp</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-target-definition</packaging>

 </project>
\ No newline at end of file
diff --git a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/emfforms_spreadsheet.target b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/emfforms_spreadsheet.target
index cd3b3ea..c6b959d 100644
--- a/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/emfforms_spreadsheet.target
+++ b/releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.target/emfforms_spreadsheet.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="emfforms_spreadsheet" sequenceNumber="1542719405">
+<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
+<target name="emfforms_spreadsheet" sequenceNumber="1545255763">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.swtbot.eclipse.feature.group" version="0.0.0"/>
@@ -14,7 +14,7 @@
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.equinox.sdk.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.platform.ide" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/eclipse/updates/4.10milestones"/>
+      <repository location="http://download.eclipse.org/eclipse/updates/4.10"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
       <unit id="org.eclipse.core.databinding" version="1.5.0.v20150422-0725"/>
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/EPPTestsSuite.suite b/tests/ECPQ7Tests/EPPTests/update-site/project/EPPTestsSuite.suite
index 0e2ffc1..15996d8 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/EPPTestsSuite.suite
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/EPPTestsSuite.suite
@@ -5,8 +5,8 @@
 Element-Version: 2.0
 Id: _MY-BIBiHEeiwib4PmrBZZQ
 Manually-Ordered: true
-Runtime-Version: 2.2.0.201706152316
-Save-Time: 5/23/18 5:31 PM
+Runtime-Version: 2.4.0.201810292311
+Save-Time: 11/28/18 4:08 PM
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8
 Content-Type: text/testcase
@@ -31,5 +31,6 @@
 _PcpI0DmJEeiUsKIXZxWPjg	// kind: 'test' name: 'TemplateAnnotationSelector' path: 'TemplateAnnotationSelector.test'
 _JU4aMDmmEeiV5MMKft7xVA	// kind: 'test' name: 'TemplateHierarchySelector' path: 'TemplateHierarchySelector.test'
 _RKICsDmnEeiV5MMKft7xVA	// kind: 'test' name: 'TemplateLabelWrapStyle' path: 'TemplateLabelWrapStyle.test'
+_W4UMAPMcEeik6oWCgIASMQ	// kind: 'test' name: 'View Model With Abstract Root EClass' path: 'View Model With Abstract Root EClass.test'
 
 ------=_testcase-items-62c497da-4241-31f4-811a-6b453a3ecff8--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/ModelWithAbstractClassContext.ctx b/tests/ECPQ7Tests/EPPTests/update-site/project/ModelWithAbstractClassContext.ctx
new file mode 100644
index 0000000..65216d1
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/ModelWithAbstractClassContext.ctx
@@ -0,0 +1,83 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Context-Type: org.eclipse.rcptt.ctx.workspace
+Element-Name: ModelWithAbstractClassContext
+Element-Type: context
+Element-Version: 2.0
+Id: _kHXSIPMaEeik6oWCgIASMQ
+Runtime-Version: 2.4.0.201810292311
+Save-Time: 11/28/18 3:55 PM
+
+------=_contents/Project/.settings/org.eclipse.jdt.core.prefs-9719119b-4367-3e9d-a359-2f34f4b85152
+Content-Type: q7/binary
+Entry-Name: contents/Project/.settings/org.eclipse.jdt.core.prefs
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACVkjFOBDEMRXtOsSeI
+tB1NGgokEEJb0XuSP4NREo9sZyVuTwa2J9tEVpKXbz8FqfBuCLtihaIlWLhCjaXF84PoFnC78ZU9JFGM
+pe5coKPI2NACt8INr6ZP345jM6LRUpAn+Qr/lHwhpVGN7Jjl1MRP4wxKjslnnHSDXwr5KlrjOTxOgr11
+Q36TRCUODwa9/p9Z98I0dE3kZCx9C4ej914XaJwc7MYdfX2Q8qH0PtSka8Izz3O7ykipgWxY8JeM5rzy
+aBmqopMwWq93oooCMsTMNvNz/gb7Vf8DUEsHCEZpZBTZAAAAwQIAAFBLAQIUABQACAgIAAAAIQBGaWQU
+2QAAAMECAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8AAAAY
+AQAAAAA=
+------=_contents/Project/.settings/org.eclipse.jdt.core.prefs-9719119b-4367-3e9d-a359-2f34f4b85152--
+------=_contents/Project/model/My.ecore-01914f54-7523-34f2-96c6-5996097f6e68
+Content-Type: q7/binary
+Entry-Name: contents/Project/model/My.ecore
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACtU8tuwjAQvPMVlnsG
+A71UUQKiFCSkVkI8pF6N2QSrfiDbaejfdx0gClUPrVofEu1mZnY8q6Tjk1bkHZyX1mR00OtTAkbYvTRF
+RrebefeBjkedFIR1kMyWXLzxAshJy6QhDSMJZYxPsJ/RQwjHhLGqqnpWFz3rCvb6smgg/hZS3deIYb8/
+QNjzWhxA8640PnAjgHYInjOz9nDDBaHk0UMtADqPIkM2izBKDNcI5jsfHBcBa79dLRp2u790kMtTCzvC
+oSlMFfde5hKvSdB0Ej6OKHgJov54HTJpxK4SGQ2uhFooSq2xEqF0XM2B4xu+UZyE4OSuDI31+KRE2Qrc
+oy3NHreDu9m0OU888NggP8rkjrEZOsHNUvYbZyvIwUFcxsWZsEY4COAbPyg9vTTPG4sHYYFLo8Fc86jH
+pqwd7W+zbsb8KVvFd6D+N82v18L65p8ZdT4BUEsHCKt2P0dUAQAAbAMAAFBLAQIUABQACAgIAAAAIQCr
+dj9HVAEAAGwDAAAIAAkAAAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8A
+AACTAQAAAAA=
+------=_contents/Project/model/My.ecore-01914f54-7523-34f2-96c6-5996097f6e68--
+------=_contents/Project/.classpath-f984ce42-12ff-3be6-aa06-31b4c770dc90
+Content-Type: q7/binary
+Entry-Name: contents/Project/.classpath
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACVkEFLAzEQhc/2Vyy5
+d9be9rDbIrKFFlylXb1KmgzbaeMkTpJi/70WLYqg0NubxzfDm1fP3l5ccUCJ5LlRE7hWBbLxlnho1GM/
+H1dqNh3VxukYg07b6ejqe0BOciz2xLZRUYwqTuanLP8Ejecz6GUANI5CRAgWwXhBEHzNJGgfXB6I4+WX
+djaB05nN9uMJWK7a59v7rr9ZdO2q/M0RJxTWDixu8gCZvjZRYJ00Wy326a4/BiyX+qDX7XgC1T+JfE4h
+p3OoDfGJrcsf7b0DUEsHCCqShdjNAAAAcQEAAFBLAQIUABQACAgIAAAAIQAqkoXYzQAAAHEBAAAIAAkA
+AAAAAAAAAAAAAAAAAAAuY29udGVudFVUBQABAAAAAFBLBQYAAAAAAQABAD8AAAAMAQAAAAA=
+------=_contents/Project/.classpath-f984ce42-12ff-3be6-aa06-31b4c770dc90--
+------=_contents/Project/META-INF/MANIFEST.MF-fbd2397f-8e7f-3faa-b753-e22becfce759
+Content-Type: q7/binary
+Entry-Name: contents/Project/META-INF/MANIFEST.MF
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAABlj8sKwjAQRff9ivxA
+QutKIi4UuhEqYsF9TKdlJMnYPIr+vQHbgrgb5tw5w22Uwx5C5DfwAclJVomyOCbXGeDNDFe2WchZWZDs
+4ukBOi7L9m3vZFD/wB0L6AYDMd/vo0+wpFdpKfJLMSZlsEfwxRXGhB74NycZ+UGANvgMIMD2eSa/WuZw
+V79Ap5h9tZvQk7PgomQnNam25pXYFocUyaqImjfUpb8KH1BLBwjT77MepwAAAAgBAABQSwECFAAUAAgI
+CAAAACEA0++zHqcAAAAIAQAACAAJAAAAAAAAAAAAAAAAAAAALmNvbnRlbnRVVAUAAQAAAABQSwUGAAAA
+AAEAAQA/AAAA5gAAAAAA
+------=_contents/Project/META-INF/MANIFEST.MF-fbd2397f-8e7f-3faa-b753-e22becfce759--
+------=_contents/Project/.project-c86618dd-5d3d-3ef3-91ee-7e836e2ebf30
+Content-Type: q7/binary
+Entry-Name: contents/Project/.project
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAAC9kk2KAjEQhdd6Cum9
+ybibRWxBB3eK4HiATFK2aTo/JGmZ40+lE2UUBEFw917Vq3yhErb41d3kDD4oa+bVjHxUEzDCSmWaeXX4
+Xk8/q0U9Zs7bFkT8giC8chHD9XjEDNdQ73KL0cFhVVitwcSa0YvCYjkgJE3/m59edXLvQKApboVj3MhU
+KAzrGwKiUy4AaWUkwnoU/MyHPPgrHAe4b/pEDdnSG8/oPeEZpJNANtyoI4S4fBtxL06g+cu8UigrRlTs
+PeRo1o+3m/sJPeQejKS77rq+UWZ7n79IxF1f/eYP/QFQSwcIAqjCT+EAAACAAgAAUEsBAhQAFAAICAgA
+AAAhAAKowk/hAAAAgAIAAAgACQAAAAAAAAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsFBgAAAAAB
+AAEAPwAAACABAAAAAA==
+------=_contents/Project/.project-c86618dd-5d3d-3ef3-91ee-7e836e2ebf30--
+------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf
+Content-Type: q7/binary
+Entry-Name: .q7.content
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAkALmNvbnRlbnRVVAUAAQAAAACVkkFvgjAUx+9+iqZ3
+222HZSGgIUYzDjUumuhtYaViFVrSvg327VeUEmJm5m4t79ff/+U9wmlTFuhLGCu1ivAjecBIKK4zqfII
+f8J+/IKnk1GoTU4EL2RlBTG8AiAcGlJrc7JVykWw9aeZViAaQE0pg1771GpdkLKB+x7hA0AVUFrXNdFl
+Tpyc7ljikT+y+ueeaZ+fOeo42nMYqbR0NNOZKLYSDvGHBZNymBWptV2fGMkswu+n1906WbF0LuTpWW9n
+eRKv2RuejBAKeUsqaM/uVhl9FBxsJ19drvhSdfW9LIQvEt4mVSkcMP0d6GzDsi4yNzYPWAHgVmH7gCvD
+cFbHzE1KG+GsYm8HTtpJb4Sw+SYeJ8vFrQwWL5PFfL0hbHG/tGynftP47Zp2nd6vs4Z7OKR+B+f10H4/
+If3vXzoZ/QBQSwcI8IPKIUEBAAAAAwAAUEsBAhQAFAAICAgAAAAhAPCDyiFBAQAAAAMAAAgACQAAAAAA
+AAAAAAAAAAAAAC5jb250ZW50VVQFAAEAAAAAUEsFBgAAAAABAAEAPwAAAIABAAAAAA==
+------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/TableControlWithDetail_Scroll.test b/tests/ECPQ7Tests/EPPTests/update-site/project/TableControlWithDetail_Scroll.test
new file mode 100644
index 0000000..30da33b
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/TableControlWithDetail_Scroll.test
@@ -0,0 +1,102 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _D4Pj4C3lEeSwhO5Nwx0hPg,_Iu0EsS36EeSYRYqCbC6LMQ
+Element-Name: TableControlWithDetail_Scroll
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _jOkp0CpNEem3i-Gw7uP7Ew
+Runtime-Version: 2.4.0.201902270059
+Save-Time: 2/27/19 10:31 AM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+tests that the table is not editable when its effectively readonly.
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa--
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+get-view "Project Explorer" | get-tree 
+    | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/UserGroup.view" | double-click
+with [get-editor "UserGroup.view"] {
+    with [get-tree] {
+        select View | get-menu -path TableControl | click
+        select "View/TableControl"
+    }
+    get-button "Create and link new Domain Model Reference" | click
+}
+
+// Create table control in UserGroup.view
+with [get-window "Configure TableDomainModelReference"] {
+    get-button "Create and link new Domain Model Reference" | click
+    with [get-window "New Reference Element"] {
+        get-tree | select "model/FeaturePathDomainModelReference"
+        get-button "Next >" | click
+        get-button "Link Domain Model EFeature" | click
+        with [get-window "Select a EStructuralFeature"] {
+            get-tree | select "users : User"
+            get-button OK | click
+        }
+        get-button Finish | click
+    }
+    get-button Finish | click
+}
+
+get-editor "UserGroup.view" | get-combo -after [get-label "Detail Editing*"] | select WithPanel
+get-button "Save (M1+S)" | click
+get-view "Project Explorer" | get-tree | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view" 
+    | double-click
+with [get-editor "User.view" | get-tree] {
+    select View | get-menu -path VerticalLayout | click
+    select View | get-menu -path VerticalLayout | click
+    select "View/VerticalLayout" | get-menu -path HorizontalLayout | click
+    select "View/VerticalLayout/HorizontalLayout" | get-menu -path "Generate Controls" | click
+}
+with [get-window -class SelectAttributesDialog] {
+    get-tree | select User
+    get-button "Next >" | click
+    with [get-table] {
+        get-item -path "firstName : EString" | check
+        select "firstName : EString" | get-item -path "lastName : EString" | check
+        select "lastName : EString" | get-item -path "gender : Gender" | check
+        select "gender : Gender" | get-item -path "active : EBoolean" | check
+        select "active : EBoolean" | get-item -path "weight : EDouble" | check
+        select "weight : EDouble" | get-item -path "heigth : EInt" | check
+        select "heigth : EInt"
+    }
+    get-button Finish | click
+}
+get-editor "User.view" | get-tree | select [get-item -path View | get-item -path VerticalLayout -index 1] | get-menu 
+    -path "Generate Controls" | click
+with [get-window -class SelectAttributesDialog] {
+    get-tree | select User
+    get-button "Next >" | click
+    get-button "Select All" | click
+    get-button Finish | click
+}
+get-button "Save (M1+S)" | click
+get-editor "UserGroup.view" | click
+get-view "EMF Forms Preview" | get-button "Manage additional Views" | click
+with [get-window "Manage additional Views"] {
+    get-button "Add View" | click
+    with [get-window -class WorkspaceResourceDialog] {
+        get-tree | select "org.eclipse.emf.ecp.makeithappen.model.viewmodel/viewmodels/User.view"
+        get-button OK | click
+    }
+    get-button OK | click
+}
+with [get-view "EMF Forms Preview"] {
+    get-button "Refresh Preview View" | click
+    get-button "Add an instance of" | click
+}
+with [get-view "EMF Forms Preview" | get-control Any -after [get-label Users] -index 10] {
+    get-property "getHorizontalBar().isVisible()" | equals true | verify-true
+    get-property "getAlwaysShowScrollBars()" | equals false | verify-true
+    get-property "getVerticalBar().isVisible()" | equals true | verify-true
+    get-property "getShowFocusedControl()" | equals false | verify-true
+}
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/TreeMasterDetailSmokeTest.test b/tests/ECPQ7Tests/EPPTests/update-site/project/TreeMasterDetailSmokeTest.test
index d6284cb..8aa2cac 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/TreeMasterDetailSmokeTest.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/TreeMasterDetailSmokeTest.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _cR1mwLKLEeebScL4g4WExw
-Runtime-Version: 2.2.0.201706152316
-Save-Time: 2/27/18 12:00 PM
+Runtime-Version: 2.4.0.201901180020
+Save-Time: 1/18/19 3:34 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -31,7 +31,7 @@
 
 
 with [get-view "EMF Forms Preview" | get-control Any -after [get-label Details] -index 2] {
-    get-property "getChildren().length" | equals 3 | verify-true
+    get-property "getChildren().length" | equals 4 | verify-true
     get-property "getChildren().Control[0].getText()" | equals Name | verify-true
     get-property "getChildren().Control[2].getChildren().Control[0].getText()" | equals "" | verify-true
     get-property "getChildren().Control[2].getChildren().Control[0].getMessage()" | equals Name | verify-true
@@ -268,7 +268,7 @@
 }
 with [get-view "EMF Forms Preview"] {
     with [get-control Any -after [get-label Details] -index 2] {
-        get-property "getChildren().length" | equals 3 | verify-true
+        get-property "getChildren().length" | equals 4 | verify-true
         get-property "getChildren().Control[0].getText()" | equals Name | verify-true
     }
     get-tree | get-property "selection[0].path[0]" | equals "User Group My User Group" | verify-true
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/View Model With Abstract Root EClass.test b/tests/ECPQ7Tests/EPPTests/update-site/project/View Model With Abstract Root EClass.test
new file mode 100644
index 0000000..192fb93
--- /dev/null
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/View Model With Abstract Root EClass.test
@@ -0,0 +1,78 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ihvnUC3mEeSwhO5Nwx0hPg,_kHXSIPMaEeik6oWCgIASMQ
+Element-Name: View Model With Abstract Root EClass
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference: 
+Id: _W4UMAPMcEeik6oWCgIASMQ
+Runtime-Version: 2.4.0.201810292311
+Save-Time: 11/28/18 4:04 PM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+* Create view model with abstract root EClass
+* Verify that preview works
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa--
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+// Creare view model with abstract root EClass
+get-view "Project Explorer" | get-tree | select Project | get-menu -path "New/Other..." | click
+with [get-window New] {
+    get-tree | select "EMF Forms/View Model"
+    get-button "Next >" | click
+    get-button "Browse Workspace" | click
+    with [get-window "Select Model"] {
+        get-tree | select "Project/model/My.ecore"
+        get-button OK | click
+    }
+    get-button "Next >" | click
+    get-tree | select Abstract
+    get-button "Fill view model with default layout" | uncheck
+    get-button "Next >" | click
+    get-button Finish | click
+}
+get-editor "Abstract.view" | get-label Abstract | get-property caption | equals Abstract | verify-true
+
+// Generate Controls
+get-editor "Abstract.view" | get-tree | select Abstract | get-menu -path "Generate Controls" | click
+get-window -class SelectAttributesDialog | get-tree | select Abstract
+get-window -class SelectAttributesDialog | get-tree | get-property itemCount | equals 1 | verify-true
+with [get-window -class SelectAttributesDialog] {
+    get-tree | select Abstract
+    get-button "Next >" | click
+}
+get-window -class SelectAttributesDialog | get-table | get-property itemCount | equals 2 | verify-true
+with [get-window -class SelectAttributesDialog] {
+    get-button "Select All" | click
+    get-button Finish | click
+}
+
+// Open Preview
+get-editor "Abstract.view" | get-button "Open Preview" | click
+get-view "EMF Forms Preview" | get-button "Automatically refresh Preview View" | click
+
+// Check that controls are present and that validation works
+get-view "EMF Forms Preview" | get-label "Name*" | get-property caption | equals "Name*" | verify-true
+get-view "EMF Forms Preview" | get-label "" -after [get-label "Name*"] | get-property "image.path" 
+    | equals "org.eclipse.emf.ecp.edit.swt/icons/validation_error.png" | verify-true
+with [get-view "EMF Forms Preview" | get-editbox -after [get-label "Name*"]] {
+    set-text Test
+    key-type "TRAVERSE_TAB_NEXT"
+}
+get-view "EMF Forms Preview" | get-label "" -after [get-label "Name*"] | get-property "getImage()" | equals null 
+    | verify-true
+get-view "EMF Forms Preview" | get-label Concretes | get-property caption | equals Concretes | verify-true
+get-view "EMF Forms Preview" | get-button "Create and link new Concretes" | click
+with [get-window Concrete] {
+    get-editbox -after [get-label Label] | set-text "Concrete!"
+    get-button OK | click
+}
+get-view "EMF Forms Preview" | get-link "<a>Concrete Concrete!</a>" | get-property caption 
+    | equals "<a>Concrete Concrete!</a>" | verify-true
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/tests/ECPQ7Tests/EPPTests/update-site/project/ViewEditor_smoke.test b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewEditor_smoke.test
index 5aff363..e045107 100644
--- a/tests/ECPQ7Tests/EPPTests/update-site/project/ViewEditor_smoke.test
+++ b/tests/ECPQ7Tests/EPPTests/update-site/project/ViewEditor_smoke.test
@@ -6,8 +6,8 @@
 Element-Version: 3.0
 External-Reference: 
 Id: _foqG8GzgEeWQGtcwdcx-qw
-Runtime-Version: 2.2.0.201706152316
-Save-Time: 8/16/18 2:32 PM
+Runtime-Version: 2.4.0.201901180020
+Save-Time: 1/18/19 3:24 PM
 Testcase-Type: ecl
 
 ------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
@@ -281,10 +281,10 @@
     select "View/Categorization" | get-menu -path "Leaf Category" | click
     select "View/Categorization/Leaf Category" | get-menu -path VerticalLayout | click
     select "View/Categorization/Leaf Category/VerticalLayout" | key-type Del
-    select "View/Categorization/Leaf Category/VerticalLayout" | get-menu -path Delete | click
+//    select "View/Categorization/Leaf Category/VerticalLayout" | get-menu -path Delete | click
     select "View/Categorization/Leaf Category" | get-menu -path Group | click
     select "View/Categorization/Leaf Category/Group" | key-type Del
-    select "View/Categorization/Leaf Category/Group" | get-menu -path Delete | click
+//    select "View/Categorization/Leaf Category/Group" | get-menu -path Delete | click
     select "View/Categorization/Leaf Category" | get-menu -path TableControl | click
     select "View/Categorization/Leaf Category/TableControl" | get-menu -path Delete | click
     select "View/Categorization/Leaf Category" | get-menu -path HorizontalLayout | click
diff --git a/tests/org.eclipse.emf.ecp.changebroker.provider.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.changebroker.provider.test/META-INF/MANIFEST.MF
index 7711fa8..acaff03 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.provider.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.changebroker.provider.test/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker EMFStore Provider Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.provider.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.changebroker.provider;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.changebroker.provider.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.changebroker.provider;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.changebroker.provider.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.workspace.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.changebroker.provider.test
diff --git a/tests/org.eclipse.emf.ecp.changebroker.provider.test/pom.xml b/tests/org.eclipse.emf.ecp.changebroker.provider.test/pom.xml
index e6d03c3..95a27f5 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.provider.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.changebroker.provider.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.changebroker.provider.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 		<build>
diff --git a/tests/org.eclipse.emf.ecp.changebroker.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.changebroker.test/META-INF/MANIFEST.MF
index f74d4b7..8a1ad6f 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.changebroker.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Change Broker Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.changebroker.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.changebroker;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.changebroker.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.changebroker;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.changebroker.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.changebroker.test
diff --git a/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml b/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml
index 725ce1f..225c0d4 100644
--- a/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.changebroker.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.changebroker.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 		<build>
diff --git a/tests/org.eclipse.emf.ecp.common.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.common.test/META-INF/MANIFEST.MF
index a2e739c..96a4cfe 100644
--- a/tests/org.eclipse.emf.ecp.common.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.common.test/META-INF/MANIFEST.MF
@@ -2,19 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.common.spi;version="1.19.0",
-  org.eclipse.emf.ecp.common.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.common.test.model;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.common.test.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.common.test.model.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.common.spi;version="1.20.0",
+ org.eclipse.emf.ecp.common.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.common.test.model;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.common.test.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.common.test.model.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)";visibility:=reexport
+ org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.common.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.common.test/pom.xml b/tests/org.eclipse.emf.ecp.common.test/pom.xml
index 9d7fbc9..2f5b23e 100644
--- a/tests/org.eclipse.emf.ecp.common.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.common.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.common.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<!-- When signing bundles we get a security exception using maven-surefire. 
diff --git a/tests/org.eclipse.emf.ecp.common.test/src/org/eclipse/emf/ecp/common/spi/Labelizer_Test.java b/tests/org.eclipse.emf.ecp.common.test/src/org/eclipse/emf/ecp/common/spi/Labelizer_Test.java
new file mode 100644
index 0000000..98bcda4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.common.test/src/org/eclipse/emf/ecp/common/spi/Labelizer_Test.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.common.spi;
+
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.sameInstance;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assume.assumeThat;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.provider.EAttributeItemProvider;
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.ecp.common.test.model.TestFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.ReflectiveItemProvider;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.rules.Timeout;
+
+/**
+ * Unit tests for the {@link Labelizer} API.
+ */
+public class Labelizer_Test {
+
+	@Rule
+	public final TestRule timeout = new Timeout(5, TimeUnit.SECONDS);
+
+	static {
+		// Ensure that the item-provider adapter factory registry has what our test needs
+		final Collection<?> types = Arrays.asList(EcorePackage.eINSTANCE, IItemLabelProvider.class);
+		ComposedAdapterFactory.Descriptor desc = ComposedAdapterFactory.Descriptor.Registry.INSTANCE
+			.getDescriptor(types);
+		if (desc == null) {
+			desc = new ComposedAdapterFactory.Descriptor() {
+
+				@Override
+				public AdapterFactory createAdapterFactory() {
+					return new EcoreItemProviderAdapterFactory();
+				}
+			};
+
+			@SuppressWarnings("unchecked")
+			final Map<Collection<?>, ComposedAdapterFactory.Descriptor> registryMap = (Map<Collection<?>, ComposedAdapterFactory.Descriptor>) ComposedAdapterFactory.Descriptor.Registry.INSTANCE;
+			registryMap.put(types, desc);
+		}
+	}
+
+	/**
+	 * Initializes me.
+	 */
+	public Labelizer_Test() {
+		super();
+	}
+
+	@Test
+	public void intern() {
+		final Labelizer instance1 = Labelizer.get(EcorePackage.eINSTANCE);
+		final Labelizer instance2 = Labelizer.get(EcorePackage.eINSTANCE);
+
+		assertThat("Non-unique instances", instance2, sameInstance(instance1));
+	}
+
+	@Test
+	public void getLabel_registeredAdapterFactory() {
+		final EObject object = EcorePackage.Literals.EATTRIBUTE__ID;
+		final Labelizer labelizer = Labelizer.get(object);
+		final String actualLabel = labelizer.getLabel(object);
+		final String expectedLabel = new EAttributeItemProvider(null).getText(object);
+
+		assertThat(actualLabel, is(expectedLabel));
+	}
+
+	@Test
+	public void getLabel_defaultAdapterFactory() {
+		// We don't have an EMF.Edit implementation for these
+		final EObject object = TestFactory.eINSTANCE.createTest1();
+		final Labelizer labelizer = Labelizer.get(object);
+		final String actualLabel = labelizer.getLabel(object);
+		final String expectedLabel = new ReflectiveItemProvider(null).getText(object);
+
+		assertThat(actualLabel, is(expectedLabel));
+	}
+
+	@Test
+	public void asyncCleanUp() throws Exception {
+		final EPackage ePackage = EcorePackage.eINSTANCE;
+		Labelizer.get(ePackage).getLabel(ePackage);
+
+		final Adapter itemProvider = ePackage.eAdapters().stream().filter(IItemLabelProvider.class::isInstance)
+			.findFirst().orElse(null);
+		assumeThat("No item-provider adapter attached", itemProvider, notNullValue());
+
+		for (int i = 0; i < 15; i++) {
+			if (!ePackage.eAdapters().contains(itemProvider)) {
+				break;
+			}
+
+			System.gc();
+			Thread.sleep(500L);
+		}
+
+		assertThat("Item providers not disposed", ePackage.eAdapters(), not(hasItem(itemProvider)));
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.common.ui.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.common.ui.test/META-INF/MANIFEST.MF
index 3e1887d..58a5f17 100644
--- a/tests/org.eclipse.emf.ecp.common.ui.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.common.ui.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Common UI Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.common.ui.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.spi.common.ui.composites;version="1.19.0"
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.spi.common.ui.composites;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
-  org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
+ org.hamcrest.core;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.core.commands.common;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.common.ui.test
+Import-Package: org.eclipse.core.commands.common;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.common.ui.test/pom.xml b/tests/org.eclipse.emf.ecp.common.ui.test/pom.xml
index cdb4495..8f8545f 100644
--- a/tests/org.eclipse.emf.ecp.common.ui.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.common.ui.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.common.ui.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<!-- When signing bundles we get a security exception using maven-surefire. 
diff --git a/tests/org.eclipse.emf.ecp.controls.fx.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.controls.fx.test/META-INF/MANIFEST.MF
index 491237a..3ecc869 100644
--- a/tests/org.eclipse.emf.ecp.controls.fx.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.controls.fx.test/META-INF/MANIFEST.MF
@@ -5,12 +5,12 @@
 Bundle-Version: 1.3.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.controls.fx.test;version="1.3.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.controls.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.common.test.fx;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.16.0,1.17.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.16.0,1.17.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.1.0,2.0.0)",
-  org.eclipse.emfforms.common;bundle-version="[1.16.0,1.17.0)"
+Require-Bundle: org.eclipse.emf.ecp.controls.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.test.fx;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.fx;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.controls.fx.test
diff --git a/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/META-INF/MANIFEST.MF
index b41ece7..2519d82 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core RAP Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.concurrent.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.concurrent.test;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.core.rap.concurrent.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.client;bundle-version="[1.9.0,1.10.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.equinox.ds
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.client;bundle-version="[1.9.0,1.10.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.equinox.ds
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.core.rap.concurrent.test
 Import-Package: org.eclipse.core.runtime;version="0.0.0",
-  org.eclipse.emf.ecp.core;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core.internal;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.internal.ui;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="0.0.0"
+ org.eclipse.emf.ecp.core;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core.internal;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.internal.ui;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/pom.xml b/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/pom.xml
index 3eb6b83..8910158 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.core.rap.concurrent.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.core.rap.concurrent.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/META-INF/MANIFEST.MF
index 6801749..d1c0211 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core Rap Sessionprovider Concurrent Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/component.xml
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/pom.xml b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/pom.xml
index 87e090d..7c3aff5 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/META-INF/MANIFEST.MF
index 291a0d4..bed38e1 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core Rap Sessionprovider Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.sessionprovider.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.core.rap;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/component.xml
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/pom.xml b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/pom.xml
index 21064b6..17fe199 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.core.rap.sessionprovider.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.core.rap.sessionprovider.test</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.core.rap.test/META-INF/MANIFEST.MF
index 978b3f4..b47b26f 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core RAP Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.rap.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.core.rap.test;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.core.rap.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core.rap;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.core.rap.test
 Import-Package: org.eclipse.core.runtime;version="0.0.0",
-  org.eclipse.emf.ecp.core;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core.internal;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="0.0.0"
+ org.eclipse.emf.ecp.core;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core.internal;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.core.rap.test/pom.xml b/tests/org.eclipse.emf.ecp.core.rap.test/pom.xml
index d4a85e8..b8d8883 100644
--- a/tests/org.eclipse.emf.ecp.core.rap.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.core.rap.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.core.rap.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.core.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.core.test/META-INF/MANIFEST.MF
index 1549d39..e6161f3 100644
--- a/tests/org.eclipse.emf.ecp.core.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.core.test/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Core Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.core.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.core.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.core.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="3.1.0",
-  org.eclipse.core.runtime;bundle-version="3.8.0",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="4.0.0",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5"
+ org.eclipse.core.runtime;bundle-version="3.8.0",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="4.0.0",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.core.test
diff --git a/tests/org.eclipse.emf.ecp.core.test/pom.xml b/tests/org.eclipse.emf.ecp.core.test/pom.xml
index c3bc099..5b1f2a1 100644
--- a/tests/org.eclipse.emf.ecp.core.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.core.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.core.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.diffmerge.test/META-INF/MANIFEST.MF
index 1fc3cf8..4ff65b0 100644
--- a/tests/org.eclipse.emf.ecp.diffmerge.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Diff Merge Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.diffmerge.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.diffmerge.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.diffmerge.context;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.diffmerge.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.diffmerge.test
diff --git a/tests/org.eclipse.emf.ecp.diffmerge.test/pom.xml b/tests/org.eclipse.emf.ecp.diffmerge.test/pom.xml
index 66b5daa..a090d61 100644
--- a/tests/org.eclipse.emf.ecp.diffmerge.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.diffmerge.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.diffmerge.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ecore.editor.test/.classpath b/tests/org.eclipse.emf.ecp.ecore.editor.test/.classpath
index 64c5e31..eca7bdb 100644
--- a/tests/org.eclipse.emf.ecp.ecore.editor.test/.classpath
+++ b/tests/org.eclipse.emf.ecp.ecore.editor.test/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.jdt.core.prefs
index edbd6f6..efea61d 100644
--- a/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.emf.ecp.ecore.editor.test/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/tests/org.eclipse.emf.ecp.ecore.editor.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ecore.editor.test/META-INF/MANIFEST.MF
index c69dbd1..244ec84 100644
--- a/tests/org.eclipse.emf.ecp.ecore.editor.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ecore.editor.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECore GenModel Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ecore.editor.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emf.ecp.ecore.editor.test;version="1.2.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="4.0.0",
-  org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecp.ecore.editor;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+ org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.ecp.ecore.editor;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ecore.editor.test
 Import-Package: org.eclipse.ui.part;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.ecore.editor.test/pom.xml b/tests/org.eclipse.emf.ecp.ecore.editor.test/pom.xml
index 8aa1e09..8ec827c 100644
--- a/tests/org.eclipse.emf.ecp.ecore.editor.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ecore.editor.test/pom.xml
@@ -5,12 +5,12 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-tests-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>

 	</parent>

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.ecore.editor.test</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-test-plugin</packaging>

   

   <build>

diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/.classpath b/tests/org.eclipse.emf.ecp.edit.swt.test/.classpath
index 64c5e31..eca7bdb 100644
--- a/tests/org.eclipse.emf.ecp.edit.swt.test/.classpath
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.jdt.core.prefs
index 0c3dffe..23a98ed 100644
--- a/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable

 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

-org.eclipse.jdt.core.compiler.compliance=1.5

+org.eclipse.jdt.core.compiler.compliance=1.8

 org.eclipse.jdt.core.compiler.debug.lineNumber=generate

 org.eclipse.jdt.core.compiler.debug.localVariable=generate

 org.eclipse.jdt.core.compiler.debug.sourceFile=generate

@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore

 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning

 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-org.eclipse.jdt.core.compiler.source=1.5

+org.eclipse.jdt.core.compiler.source=1.8

 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled

 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL

 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO

diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.edit.swt.test/META-INF/MANIFEST.MF
index 3620a80..8f286fa 100644
--- a/tests/org.eclipse.emf.ecp.edit.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/META-INF/MANIFEST.MF
@@ -2,26 +2,27 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.edit.swt.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.edit.internal.model.testData;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.edit.internal.model.testData.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.edit.internal.model.testData.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.edit.internal.swt.table;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.edit.internal.swt.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.edit.spi.swt.table;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.edit.internal.model.testData;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.model.testData.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.model.testData.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.swt.controls;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.swt.table;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.internal.swt.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.edit.spi.swt.table;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.10.2,3.0.0)",
-  org.eclipse.emf.ecp.test.model;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emfforms.core.services.locale.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common.prevalidation;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.10.2,3.0.0)",
+ org.eclipse.emf.ecp.test.model;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.locale.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common.prevalidation;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.edit.swt.test
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.edit.swt.test/pom.xml
index 58c95bf..dc2cfc9 100644
--- a/tests/org.eclipse.emf.ecp.edit.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.edit.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<!-- When signing bundles we get a security exception using maven-surefire. 
diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl_Test.java b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl_Test.java
new file mode 100644
index 0000000..4ff03d4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/internal/swt/controls/TableControl_Test.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * nicole.behlen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.edit.internal.swt.controls;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecp.edit.internal.swt.controls.TableControl.ECPTableEditingSupport;
+import org.eclipse.emf.ecp.edit.internal.swt.controls.TableControl.ECPTableEditingSupport.EditingState;
+import org.eclipse.jface.viewers.TableViewer;
+import org.junit.Test;
+
+/**
+ * @author nicole.behlen
+ *
+ */
+@SuppressWarnings({ "deprecation", "rawtypes" })
+public class TableControl_Test {
+
+	@Test
+	public void isUpdateNeeded_BothNull_ReturnFalse() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControl renderer = mock(TableControl.class);
+		final IObservableValue<?> target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn(null);
+		final IObservableValue<?> model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn(null);
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertFalse(updateNeeded);
+	}
+
+	@Test
+	public void isUpdateNeeded_OnlyModelNull_ReturnTrue() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControl renderer = mock(TableControl.class);
+		final IObservableValue target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn(new Object());
+		final IObservableValue<?> model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn(null);
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertTrue(updateNeeded);
+	}
+
+	@Test
+	public void isUpdateNeeded_TargetModelNull_ReturnTrue() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControl renderer = mock(TableControl.class);
+		final IObservableValue target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn(null);
+		final IObservableValue model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn(new Object());
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertTrue(updateNeeded);
+	}
+
+	@Test
+	public void isUpdateNeeded_Same_ReturnFalse() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControl renderer = mock(TableControl.class);
+		final IObservableValue target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn(0);
+		final IObservableValue model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn(0);
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertFalse(updateNeeded);
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.emf2web.json.test/META-INF/MANIFEST.MF
index fe18e69..64adc6e 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.json.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/META-INF/MANIFEST.MF
@@ -2,12 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF To Web JSON Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.emf2web.json.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.emf2web;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.19.0"
+Fragment-Host: org.eclipse.emf.ecp.emf2web;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.emf2web.json.controller.xtend;version="1.20.0",
+ org.eclipse.emf.ecp.emf2web.json.generator.xtend;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
-  com.google.gson;bundle-version="[2.2.0,3.0.0)",
-  org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.19.0,1.20.0)"
+ com.google.gson;bundle-version="[2.2.0,3.0.0)",
+ org.eclipse.emf.ecp.emf2web.json;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.controlgrid.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.emf2web.json.test
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/pom.xml b/tests/org.eclipse.emf.ecp.emf2web.json.test/pom.xml
index 6cb745a..ecf906f 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.json.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/pom.xml
@@ -5,11 +5,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.emf2web.json.test</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/ViewCleaner_Test.xtend b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/ViewCleaner_Test.xtend
new file mode 100644
index 0000000..d0ae607
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/controller/xtend/ViewCleaner_Test.xtend
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Stefan Dirix - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emf2web.json.controller.xtend
+
+import org.eclipse.emf.common.util.Diagnostic
+import org.eclipse.emf.ecore.EAttribute
+import org.eclipse.emf.ecore.EClass
+import org.eclipse.emf.ecore.EcoreFactory
+import org.eclipse.emf.ecore.EcorePackage
+import org.eclipse.emf.ecore.util.Diagnostician
+import org.eclipse.emf.ecp.view.spi.model.VControl
+import org.eclipse.emf.ecp.view.spi.model.VView
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalFactory
+import org.eclipse.emf.ecp.view.spi.vertical.model.VVerticalLayout
+import org.eclipse.emf.emfforms.spi.view.controlgrid.model.VControlgridFactory
+import org.junit.Before
+import org.junit.BeforeClass
+import org.junit.Test
+
+import static org.junit.Assert.*
+
+class ViewCleaner_Test {
+
+	static EClass personEClass
+	static EAttribute ageAttribute
+
+	@BeforeClass
+	def static void init(){
+		personEClass = EcoreFactory.eINSTANCE.createEClass
+		personEClass.name = "Person"
+		
+		ageAttribute = EcoreFactory.eINSTANCE.createEAttribute
+		ageAttribute.name = "age"
+		ageAttribute.EType = EcorePackage.eINSTANCE.EInt
+		
+		personEClass.EStructuralFeatures.add(ageAttribute);
+	}
+
+	VView view
+	VVerticalLayout vertical
+	VControl ageControl
+
+	@Before
+	def void createDefaultView(){
+		view = VViewFactory.eINSTANCE.createView
+		view.rootEClass = personEClass
+		
+		vertical = VVerticalFactory.eINSTANCE.createVerticalLayout
+		ageControl = VViewFactory.eINSTANCE.createControl
+		view.children += vertical
+		ageControl.domainModelReference = ageAttribute
+		vertical.children += ageControl
+	}
+
+	@Test
+	def void validViewModel(){				
+		ViewCleaner.cleanView(view);
+		
+		assertTrue(view.children.contains(vertical))
+		assertTrue(vertical.children.contains(ageControl))
+	}
+
+	@Test
+	def void removeControlWithoutReference(){
+		val control = VViewFactory.eINSTANCE.createControl
+		vertical.children += control
+		
+		assertTrue(vertical.children.contains(control))
+				
+		ViewCleaner.cleanView(view);
+		
+		assertTrue(vertical.children.contains(ageControl))
+		assertFalse(vertical.children.contains(control))
+	}
+
+	@Test
+	def void removeControlWithInvalidReference(){
+		val control = VViewFactory.eINSTANCE.createControl
+		
+		val attribute = EcoreFactory.eINSTANCE.createEAttribute
+		attribute.name = "invalid"
+		attribute.EType = EcorePackage.eINSTANCE.getEString()
+		
+		control.domainModelReference = attribute
+		vertical.children += control
+		
+		assertTrue(vertical.children.contains(control))
+				
+		ViewCleaner.cleanView(view);
+		
+		assertTrue(vertical.children.contains(ageControl))
+		assertFalse(vertical.children.contains(control))
+	}
+
+	@Test
+	def void removeUnsupportedElement(){
+		val control = VViewFactory.eINSTANCE.createControl
+		control.domainModelReference = ageAttribute
+		
+		val grid = VControlgridFactory.eINSTANCE.createControlGrid
+		val row = VControlgridFactory.eINSTANCE.createControlGridRow
+		val cell = VControlgridFactory.eINSTANCE.createControlGridCell
+		vertical.children += grid
+		grid.rows += row
+		row.cells += cell
+		cell.control = control
+		
+		assertTrue(vertical.children.contains(grid))
+		assertTrue(Diagnostician.INSTANCE.validate(grid).severity === Diagnostic.OK)
+				
+		ViewCleaner.cleanView(view);
+		
+		assertFalse(vertical.children.contains(grid))
+	}
+
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonExporter_Test.xtend b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonExporter_Test.xtend
index 8f8b093..0146273 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonExporter_Test.xtend
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/EcoreJsonExporter_Test.xtend
@@ -14,15 +14,15 @@
 import org.eclipse.emf.ecore.EClassifier
 
 class EcoreJsonExporter_Test {
-	static final val ECORE_PACKAGE = EcorePackage.eINSTANCE
-	static final val ECORE_FACTORY = EcoreFactory.eINSTANCE
-	static final val TEST_ECLASS_NAME = "TestEClass";
-	static final val TEST_EATTRIBUTE_NAME = "testAttribute";
-    static final val TEST_EREFERENCE_NAME = "testReference";
+	static val ECORE_PACKAGE = EcorePackage.eINSTANCE
+	static val ECORE_FACTORY = EcoreFactory.eINSTANCE
+	static val TEST_ECLASS_NAME = "TestEClass";
+	static val TEST_EATTRIBUTE_NAME = "testAttribute";
+	static val TEST_EREFERENCE_NAME = "testReference";
 
-	final val List<String> testEnumValues = new ArrayList<String>(Arrays.asList("1A", "2B"))
+	val List<String> testEnumValues = new ArrayList<String>(Arrays.asList("1A", "2B"))
 
-	private EcoreJsonGenerator exporter;
+	EcoreJsonGenerator exporter;
 
 	@Before
 	def void init() {
@@ -119,9 +119,6 @@
 		assertEquals(eClassWithOptionalSingleReferencedEClassJsonElement, result)
 	}
 
-	/*
-	 * New tests
-	 */
 	@Test
 	def void createJsonSchemaElementFromEmptyEClass() {
 		val eClass = emptyEClass()
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonExporter_Test.xtend b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonExporter_Test.xtend
index c8d2ac2..a19c9fd 100644
--- a/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonExporter_Test.xtend
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/FormsJsonExporter_Test.xtend
@@ -15,9 +15,11 @@
 import org.eclipse.emf.ecp.emf2web.json.generator.xtend.FormsJsonGenerator
 import org.eclipse.emf.ecp.emf2web.util.ReferenceHelper
 import org.eclipse.emf.ecp.view.spi.categorization.model.VCategorizationFactory
+import org.eclipse.emf.ecore.EcoreFactory
+import com.google.gson.JsonObject
 
 class FormsJsonExporter_Test {
-	private FormsJsonGenerator exporter;
+	FormsJsonGenerator exporter;
 	val testName = "testName";
 	val testReference = "testReference";
 	val EStructuralFeature mockFeature = EcorePackage.eINSTANCE.getEClass_Abstract
@@ -229,6 +231,18 @@
 		assertEquals(test2ControlsInVertical, result)
 	}
 
+	@Test
+	def testFallbackObject() {
+		val result = exporter.createJsonElement(EcoreFactory.eINSTANCE.createEObject)
+		assertEquals(new JsonObject, result)
+	}
+
+	@Test
+	def testNull() {
+		val result = exporter.createJsonElement(null)
+		assertEquals(new JsonObject, result)
+	}
+
 	def JsonElement test2HorizontalInVertical() {
 		'''
 			{
diff --git a/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/JsonGenerator_Test.xtend b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/JsonGenerator_Test.xtend
new file mode 100644
index 0000000..2baedf6
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.emf2web.json.test/src/org/eclipse/emf/ecp/emf2web/json/generator/xtend/JsonGenerator_Test.xtend
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Stefan Dirix - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.emf2web.json.generator.xtend
+
+import org.eclipse.emf.ecore.EObject
+import com.google.gson.JsonObject
+import org.junit.Before
+import org.junit.Test
+
+import static org.junit.Assert.*
+import java.util.LinkedList
+import org.eclipse.emf.ecore.EcorePackage
+
+class JsonGenerator_Test {
+	static class TestJsonGenerator extends JsonGenerator{
+		override createJsonElement(EObject object) {
+			new JsonObject
+		}
+	}
+	
+	JsonGenerator generator
+	
+	@Before
+	def void init() {
+		generator = new TestJsonGenerator()
+	}
+	
+	@Test
+	def void generateWithString() {
+		val object = new JsonObject
+		generator.with(object, "test", "test2");
+		assertEquals("test2", object.getAsJsonPrimitive("test").asString)
+	}
+	
+	@Test
+	def void generateWithNumber() {
+		val object = new JsonObject
+		generator.with(object, "test", 10);
+		assertEquals(10, object.getAsJsonPrimitive("test").asInt)
+	}
+	
+	@Test
+	def void generateWithBoolean() {
+		val object = new JsonObject
+		generator.with(object, "test", true);
+		assertEquals(true, object.getAsJsonPrimitive("test").asBoolean)
+	}
+	
+	@Test
+	def void generateWithCharacter() {
+		val object = new JsonObject
+		generator.with(object, "test", 'c');
+		assertEquals(new Character('c'), object.getAsJsonPrimitive("test").asCharacter)
+	}
+	
+	@Test
+	def void generateWithNull() {
+		val object = new JsonObject
+		generator.with(object, "test", null);
+		assertEquals("", object.getAsJsonPrimitive("test").asString)
+	}
+	
+	@Test
+	def void generateWithEObjectList() {
+		val object = new JsonObject
+		val eObjects = new LinkedList
+		eObjects.add(EcorePackage.eINSTANCE.EAttribute)
+		generator.with(object, "test", eObjects);
+		assertEquals(new JsonObject, object.getAsJsonArray("test").get(0))
+	}
+	
+	@Test
+	def void generateWithOther() {
+		val object = new JsonObject
+		generator.with(object, "test", new Object);
+		assertEquals("", object.getAsJsonPrimitive("test").asString)
+	}
+	
+
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.ecp.ide.editor.view.test/AllPluginTests for ecp.ide.editor.view.launch b/tests/org.eclipse.emf.ecp.ide.editor.view.test/AllPluginTests for ecp.ide.editor.view.launch
index 9e7c962..24461d0 100644
--- a/tests/org.eclipse.emf.ecp.ide.editor.view.test/AllPluginTests for ecp.ide.editor.view.launch
+++ b/tests/org.eclipse.emf.ecp.ide.editor.view.test/AllPluginTests for ecp.ide.editor.view.launch
@@ -2,7 +2,7 @@
 <launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
 <booleanAttribute key="append.args" value="true"/>
 <booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticAdd" value="false"/>
 <booleanAttribute key="automaticValidate" value="true"/>
 <stringAttribute key="bootstrap" value=""/>
 <stringAttribute key="checked" value="[NONE]"/>
@@ -11,8 +11,7 @@
 <booleanAttribute key="clearwslog" value="false"/>
 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/AllPluginTests for ecp.ide.editor.view"/>
 <booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="com.capana.example.application,com.capana.example.data,com.capana.example.data.mock,com.capana.example.model,com.capana.example.model.edit,markant.customcontrol.visibility,org.eclipse.emf.ecp.application.e3,org.eclipse.emf.ecp.application.e4,org.eclipse.emf.ecp.application.e4.fx,org.eclipse.emf.ecp.cdo.core,org.eclipse.emf.ecp.cdo.ui,org.eclipse.emf.ecp.changebroker,org.eclipse.emf.ecp.changebroker.provider,org.eclipse.emf.ecp.changebroker.provider.test,org.eclipse.emf.ecp.changebroker.test,org.eclipse.emf.ecp.common.test,org.eclipse.emf.ecp.common.test.fx,org.eclipse.emf.ecp.controls.fx,org.eclipse.emf.ecp.controls.fx.test,org.eclipse.emf.ecp.core.emffilter,org.eclipse.emf.ecp.core.rap,org.eclipse.emf.ecp.core.rap.concurrent.test,org.eclipse.emf.ecp.core.rap.sessionprovider.concurrent.test,org.eclipse.emf.ecp.core.rap.sessionprovider.rwt,org.eclipse.emf.ecp.core.rap.sessionprovider.test,org.eclipse.emf.ecp.core.rap.test,org.eclipse.emf.ecp.diffmerge.context,org.eclipse.emf.ecp.diffmerge.model,org.eclipse.emf.ecp.diffmerge.model.edit,org.eclipse.emf.ecp.diffmerge.renderer.swt,org.eclipse.emf.ecp.diffmerge.swt,org.eclipse.emf.ecp.diffmerge.test,org.eclipse.emf.ecp.doc,org.eclipse.emf.ecp.ecore.editor,org.eclipse.emf.ecp.ecore.editor.test,org.eclipse.emf.ecp.ecore.editor.ui,org.eclipse.emf.ecp.edit.ecore.swt,org.eclipse.emf.ecp.emf2web,org.eclipse.emf.ecp.emf2web.json,org.eclipse.emf.ecp.emf2web.json.test,org.eclipse.emf.ecp.emf2web.ui,org.eclipse.emf.ecp.emf2web.ui.json,org.eclipse.emf.ecp.emfstore.core.rap,org.eclipse.emf.ecp.emfstore.localserver,org.eclipse.emf.ecp.emfstore.ui,org.eclipse.emf.ecp.emfstore.ui.e3,org.eclipse.emf.ecp.emfstore.ui.e4,org.eclipse.emf.ecp.emfstore.ui.e4.fx,org.eclipse.emf.ecp.emfstore.ui.search,org.eclipse.emf.ecp.examplemodel.ui,org.eclipse.emf.ecp.graphiti.core,org.eclipse.emf.ecp.graphiti.integration,org.eclipse.emf.ecp.ide.editor.view.templatebridge,org.eclipse.emf.ecp.ide.editor.viewmodel,org.eclipse.emf.ecp.ide.migration,org.eclipse.emf.ecp.ide.util.test,org.eclipse.emf.ecp.ide.view.service.test,org.eclipse.emf.ecp.integrationtest,org.eclipse.emf.ecp.makeithappen.application.sample.e3,org.eclipse.emf.ecp.makeithappen.application.sample.e4,org.eclipse.emf.ecp.makeithappen.application.sample.fx,org.eclipse.emf.ecp.makeithappen.application.sample.rap,org.eclipse.emf.ecp.makeithappen.application.sample.rap.j2ee,org.eclipse.emf.ecp.makeithappen.model.edit,org.eclipse.emf.ecp.makeithappen.model.viewmodel,org.eclipse.emf.ecp.makeithappen.view.email.renderer,org.eclipse.emf.ecp.makeithappen.view.group.renderer,org.eclipse.emf.ecp.makeithappen.wizards,org.eclipse.emf.ecp.products,org.eclipse.emf.ecp.quickfix,org.eclipse.emf.ecp.quickfix.test,org.eclipse.emf.ecp.quickfix.ui.e4,org.eclipse.emf.ecp.rap,org.eclipse.emf.ecp.rap.util,org.eclipse.emf.ecp.test.model.edit,org.eclipse.emf.ecp.ui.e3,org.eclipse.emf.ecp.ui.e4,org.eclipse.emf.ecp.ui.rap,org.eclipse.emf.ecp.ui.rcp,org.eclipse.emf.ecp.ui.transaction,org.eclipse.emf.ecp.ui.validation,org.eclipse.emf.ecp.ui.validation.e4,org.eclipse.emf.ecp.ui.validation.test,org.eclipse.emf.ecp.ui.view.editor.controls,org.eclipse.emf.ecp.ui.view.editor.controls.test,org.eclipse.emf.ecp.ui.view.linewrapper,org.eclipse.emf.ecp.ui.view.linewrapper.tests,org.eclipse.emf.ecp.ui.view.swt.di,org.eclipse.emf.ecp.util.e4.fx,org.eclipse.emf.ecp.util.fx,org.eclipse.emf.ecp.validation,org.eclipse.emf.ecp.validation.connector,org.eclipse.emf.ecp.validation.diagnostician,org.eclipse.emf.ecp.validation.diagnostician.test,org.eclipse.emf.ecp.validation.test,org.eclipse.emf.ecp.validationvieweditorbridge,org.eclipse.emf.ecp.view.categorization.model,org.eclipse.emf.ecp.view.categorization.model.edit,org.eclipse.emf.ecp.view.categorization.swt,org.eclipse.emf.ecp.view.categorization.swt.test,org.eclipse.emf.ecp.view.compoundcontrol.model,org.eclipse.emf.ecp.view.compoundcontrol.model.edit,org.eclipse.emf.ecp.view.compoundcontrol.swt,org.eclipse.emf.ecp.view.compoundcontrol.swt.test,org.eclipse.emf.ecp.view.compoundcontrol.tooling,org.eclipse.emf.ecp.view.context.locale,org.eclipse.emf.ecp.view.control.multireference,org.eclipse.emf.ecp.view.control.multireference.tests,org.eclipse.emf.ecp.view.core.swt,org.eclipse.emf.ecp.view.core.swt.tests,org.eclipse.emf.ecp.view.custom.model,org.eclipse.emf.ecp.view.custom.model.edit,org.eclipse.emf.ecp.view.custom.ui.swt,org.eclipse.emf.ecp.view.custom.ui.swt.di,org.eclipse.emf.ecp.view.custom.ui.swt.test,org.eclipse.emf.ecp.view.dynamictree.model,org.eclipse.emf.ecp.view.dynamictree.model.edit,org.eclipse.emf.ecp.view.dynamictree.model.test,org.eclipse.emf.ecp.view.dynamictree.ui,org.eclipse.emf.ecp.view.dynamictree.ui.swt,org.eclipse.emf.ecp.view.edapt,org.eclipse.emf.ecp.view.edapt.test,org.eclipse.emf.ecp.view.edapt.util.test,org.eclipse.emf.ecp.view.group.fx,org.eclipse.emf.ecp.view.group.model.edit,org.eclipse.emf.ecp.view.group.swt.collapsable,org.eclipse.emf.ecp.view.group.swt.collapsible.pgroup,org.eclipse.emf.ecp.view.group.swt.embedded,org.eclipse.emf.ecp.view.group.ui.swt,org.eclipse.emf.ecp.view.group.ui.swt.test,org.eclipse.emf.ecp.view.groupedgrid.model,org.eclipse.emf.ecp.view.groupedgrid.model.edit,org.eclipse.emf.ecp.view.groupedgrid.ui.swt,org.eclipse.emf.ecp.view.horizontal.fx,org.eclipse.emf.ecp.view.horizontal.model,org.eclipse.emf.ecp.view.horizontal.model.edit,org.eclipse.emf.ecp.view.horizontal.ui.swt,org.eclipse.emf.ecp.view.horizontal.ui.swt.test,org.eclipse.emf.ecp.view.indexdmr.model,org.eclipse.emf.ecp.view.indexdmr.model.edit,org.eclipse.emf.ecp.view.indexdmr.model.test,org.eclipse.emf.ecp.view.indexdmr.tooling,org.eclipse.emf.ecp.view.keyattributedmr.model,org.eclipse.emf.ecp.view.keyattributedmr.model.edit,org.eclipse.emf.ecp.view.keyattributedmr.model.test,org.eclipse.emf.ecp.view.keyattributedmr.tooling,org.eclipse.emf.ecp.view.label.fx,org.eclipse.emf.ecp.view.label.model,org.eclipse.emf.ecp.view.label.model.edit,org.eclipse.emf.ecp.view.label.rap,org.eclipse.emf.ecp.view.label.ui.swt,org.eclipse.emf.ecp.view.mappingdmr.model,org.eclipse.emf.ecp.view.mappingdmr.model.edit,org.eclipse.emf.ecp.view.mappingdmr.model.test,org.eclipse.emf.ecp.view.mappingdmr.tooling,org.eclipse.emf.ecp.view.model.common.di,org.eclipse.emf.ecp.view.model.edapt,org.eclipse.emf.ecp.view.model.edit,org.eclipse.emf.ecp.view.model.edit.test,org.eclipse.emf.ecp.view.model.editor,org.eclipse.emf.ecp.view.model.editor.testplugin,org.eclipse.emf.ecp.view.model.fx,org.eclipse.emf.ecp.view.model.integrationtest,org.eclipse.emf.ecp.view.model.preview.common,org.eclipse.emf.ecp.view.model.preview.e3,org.eclipse.emf.ecp.view.model.project.installer,org.eclipse.emf.ecp.view.rule,org.eclipse.emf.ecp.view.rule.model,org.eclipse.emf.ecp.view.rule.model.edit,org.eclipse.emf.ecp.view.rule.test,org.eclipse.emf.ecp.view.rule.ui.swt.test,org.eclipse.emf.ecp.view.section.model,org.eclipse.emf.ecp.view.section.model.edit,org.eclipse.emf.ecp.view.section.ui.swt,org.eclipse.emf.ecp.view.stack.model,org.eclipse.emf.ecp.view.stack.model.edit,org.eclipse.emf.ecp.view.stack.ui.swt,org.eclipse.emf.ecp.view.stack.ui.swt.test,org.eclipse.emf.ecp.view.stack.viewmodel,org.eclipse.emf.ecp.view.swt.layout,org.eclipse.emf.ecp.view.table.celleditor.rcp,org.eclipse.emf.ecp.view.table.columnservice,org.eclipse.emf.ecp.view.table.edapt,org.eclipse.emf.ecp.view.table.model.edit,org.eclipse.emf.ecp.view.table.ui.nebula.grid,org.eclipse.emf.ecp.view.table.ui.nebula.grid.rap,org.eclipse.emf.ecp.view.table.ui.nebula.grid.test,org.eclipse.emf.ecp.view.table.ui.rcp,org.eclipse.emf.ecp.view.table.ui.swt,org.eclipse.emf.ecp.view.table.ui.swt.persistedstate,org.eclipse.emf.ecp.view.table.ui.swt.test,org.eclipse.emf.ecp.view.table.validation,org.eclipse.emf.ecp.view.table.validation.test,org.eclipse.emf.ecp.view.template.model.edit,org.eclipse.emf.ecp.view.template.service,org.eclipse.emf.ecp.view.template.service.test,org.eclipse.emf.ecp.view.template.tooling,org.eclipse.emf.ecp.view.treemasterdetail.fx,org.eclipse.emf.ecp.view.treemasterdetail.model,org.eclipse.emf.ecp.view.treemasterdetail.model.edit,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test,org.eclipse.emf.ecp.view.treemasterdetail.validation,org.eclipse.emf.ecp.view.treemasterdetail.validation.test,org.eclipse.emf.ecp.view.ui.editor.test,org.eclipse.emf.ecp.view.unset,org.eclipse.emf.ecp.view.unset.test,org.eclipse.emf.ecp.view.util.swt.rap,org.eclipse.emf.ecp.view.validation.bean,org.eclipse.emf.ecp.view.validation.bean.default,org.eclipse.emf.ecp.view.validation.bean.test,org.eclipse.emf.ecp.view.vertical.fx,org.eclipse.emf.ecp.view.vertical.model.edit,org.eclipse.emf.ecp.view.vertical.ui.swt,org.eclipse.emf.ecp.view.vertical.ui.swt.test,org.eclipse.emf.ecp.view.viewproxy.model,org.eclipse.emf.ecp.view.viewproxy.model.edit,org.eclipse.emf.ecp.view.viewproxy.tests,org.eclipse.emf.ecp.view.workspace.migrator,org.eclipse.emf.ecp.viewmodel.fx,org.eclipse.emf.ecp.workspace.core,org.eclipse.emf.ecp.workspace.ui,org.eclipse.emf.ecp.workspace.ui.rap,org.eclipse.emf.ecp.workspace.ui.rap.test,org.eclipse.emf.emfstore.fx.projects,org.eclipse.emf.emfstore.fx.util,org.eclipse.emfforms.core.services.databinding.featurepath,org.eclipse.emfforms.core.services.databinding.featurepath.tests,org.eclipse.emfforms.core.services.databinding.index,org.eclipse.emfforms.core.services.databinding.index.tests,org.eclipse.emfforms.core.services.databinding.integrationtest,org.eclipse.emfforms.core.services.databinding.keyattribute,org.eclipse.emfforms.core.services.databinding.keyattribute.tests,org.eclipse.emfforms.core.services.databinding.mapping,org.eclipse.emfforms.core.services.databinding.mapping.tests,org.eclipse.emfforms.core.services.domainexpander.index,org.eclipse.emfforms.core.services.domainexpander.index.tests,org.eclipse.emfforms.core.services.domainexpander.keyattribute,org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests,org.eclipse.emfforms.core.services.domainexpander.mapping,org.eclipse.emfforms.core.services.domainexpander.mapping.tests,org.eclipse.emfforms.core.services.structuralchange.index,org.eclipse.emfforms.core.services.structuralchange.keyattribute,org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests,org.eclipse.emfforms.core.services.structuralchange.mapping,org.eclipse.emfforms.core.services.structuralchange.table,org.eclipse.emfforms.editor,org.eclipse.emfforms.editor.ecore,org.eclipse.emfforms.editor.ecore.test,org.eclipse.emfforms.editor.genmodel,org.eclipse.emfforms.editor.genmodel.util,org.eclipse.emfforms.editor.viewmodel,org.eclipse.emfforms.rulerepository.model,org.eclipse.emfforms.rulerepository.model.edit,org.eclipse.emfforms.rulerepository.tooling,org.eclipse.emfforms.setup.base,org.eclipse.emfforms.spreadsheet.core,org.eclipse.emfforms.spreadsheet.core.error.model,org.eclipse.emfforms.spreadsheet.core.error.model.edit,org.eclipse.emfforms.spreadsheet.core.renderer,org.eclipse.emfforms.spreadsheet.core.renderer.categorization,org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests,org.eclipse.emfforms.spreadsheet.core.renderer.custom,org.eclipse.emfforms.spreadsheet.core.renderer.table,org.eclipse.emfforms.spreadsheet.core.renderer.table.tests,org.eclipse.emfforms.spreadsheet.core.tests,org.eclipse.emfforms.spreadsheet.file,org.eclipse.emfforms.spreadsheet.integrationtest,org.eclipse.emfforms.spreadsheet.stream,org.eclipse.emfforms.swt.categorization.expandbar,org.eclipse.emfforms.swt.common.test,org.eclipse.emfforms.swt.control.multiattribute,org.eclipse.emfforms.swt.control.text.autocomplete,org.eclipse.emfforms.swt.control.text.autocomplete.tests,org.eclipse.emfforms.swt.control.text.richtext,org.eclipse.emfforms.swt.controlgrid,org.eclipse.emfforms.swt.controlgrid.test,org.eclipse.emfforms.swt.core.di,org.eclipse.emfforms.swt.core.di.extension,org.eclipse.emfforms.swt.core.di.extension.tests,org.eclipse.emfforms.swt.core.di.tests,org.eclipse.emfforms.swt.core.plugin,org.eclipse.emfforms.swt.table,org.eclipse.emfforms.swt.treemasterdetail,org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default,org.eclipse.emfforms.view.annotation.model,org.eclipse.emfforms.view.annotation.model.edit,org.eclipse.emfforms.view.controlgrid.model,org.eclipse.emfforms.view.controlgrid.model.edit,org.eclipse.emfforms.view.model.localization,org.eclipse.emfforms.view.model.localization.tests"/>
-<booleanAttribute key="includeOptional" value="true"/>
+<booleanAttribute key="includeOptional" value="false"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
 <listEntry value="/org.eclipse.emf.ecp.ide.editor.view.test/src/org/eclipse/emf/ecp/ide/editor/view/test/AllPluginTests.java"/>
@@ -24,6 +23,7 @@
 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.ide.editor.view.test.AllPluginTests"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -33,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.css*1.8.0.v20170214-1941@default:default,org.apache.batik.util*1.8.0.v20170214-1941@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.apache.felix.scr@default:default,org.apache.log4j@default:default,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.lucene.misc@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.observable*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.property*1.6.100.v20170515-1119@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.platform@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.xtext.logging@default:false,org.hamcrest.core@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.slf4j.api@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.ide.editor.view.test@default:false,org.eclipse.emf.ecp.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.test@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.test@default:false,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi.test@default:false,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.table.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model.test@default:false,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation.test@default:false,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.tests@default:false,org.eclipse.emfforms.common.validation.tests@default:false,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default.tests@default:false,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf.tests@default:false,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy.tests@default:false,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services.tests@default:false,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization.tests@default:false,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.tests@default:false,org.eclipse.emfforms.swt.core@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.scr@1:true,org.apache.log4j@default:default,org.apache.xmlgraphics@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.100.v20181030-1443@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.urischeme@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.ide.editor.view.test@default:false,org.eclipse.emf.ecp.ide.editor.view@default:default,org.eclipse.emf.ecp.ide.editor.viewmodel@default:default,org.eclipse.emf.ecp.ide.util@default:default,org.eclipse.emf.ecp.ide.view.service@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.di@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.view.categorization.model.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.di@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model.nl_de@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt@default:default,org.eclipse.emf.ecp.view.treemasterdetail.validation@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table.panel@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.segments.featurepath@default:default,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments.multi@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.setup.base@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di.tests@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emf.ecp.ide.editor.view.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ide.editor.view.test/META-INF/MANIFEST.MF
index 6e746cc..16d3874 100644
--- a/tests/org.eclipse.emf.ecp.ide.editor.view.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ide.editor.view.test/META-INF/MANIFEST.MF
@@ -2,13 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDE Editor View Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.editor.view.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ide.editor.view.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.ide.editor.view;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.ide.editor.view;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ide.editor.view.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.editor.view.test
 Import-Package: org.eclipse.ui.internal;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.ide.editor.view.test/pom.xml b/tests/org.eclipse.emf.ecp.ide.editor.view.test/pom.xml
index 0b1cfbe..22d2754 100644
--- a/tests/org.eclipse.emf.ecp.ide.editor.view.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ide.editor.view.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ide.editor.view.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ide.editor.view.test/resources/View-WellFormed.view b/tests/org.eclipse.emf.ecp.ide.editor.view.test/resources/View-WellFormed.view
new file mode 100644
index 0000000..9ec364a
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.ide.editor.view.test/resources/View-WellFormed.view
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ASCII"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_7nHmAOVsEeemhYbnLSAhXw" name="User">
+  <rootEClass href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_7nO60uVsEeemhYbnLSAhXw" name="Control email">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_7nO60-VsEeemhYbnLSAhXw">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://eclipse/org/emf/ecp/makeithappen/model/task#//User/email"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emf.ecp.ide.editor.view.test/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart_PTest.java b/tests/org.eclipse.emf.ecp.ide.editor.view.test/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart_PTest.java
index 20bfcd1..900ad7b 100644
--- a/tests/org.eclipse.emf.ecp.ide.editor.view.test/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart_PTest.java
+++ b/tests/org.eclipse.emf.ecp.ide.editor.view.test/src/org/eclipse/emf/ecp/ide/editor/view/ViewEditorPart_PTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,27 +8,61 @@
  *
  * Contributors:
  * lucas - initial API and implementation
+ * Christian W. Damus - bug 543376
  ******************************************************************************/
 package org.eclipse.emf.ecp.ide.editor.view;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeThat;
 
 import java.lang.reflect.Field;
 import java.text.MessageFormat;
+import java.util.Iterator;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.common.ui.URIEditorInput;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecp.ide.editor.view.messages.Messages;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.bindings.keys.ParseException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.keyboard.Keyboard;
+import org.eclipse.swtbot.swt.finder.keyboard.KeyboardFactory;
+import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorReference;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
 import org.eclipse.ui.internal.ErrorEditorPart;
+import org.eclipse.ui.part.EditorActionBarContributor;
 import org.junit.After;
 import org.junit.Test;
 
@@ -41,6 +75,8 @@
 @SuppressWarnings("restriction")
 public class ViewEditorPart_PTest {
 
+	private static final String USER_VIEW_MODEL = "View-WellFormed.view";
+
 	@Test
 	public void openView_NoRootEClass() {
 		final String expectedErrorMessage = Messages.ViewEditorPart_invalidVView_noRootEClass;
@@ -69,6 +105,153 @@
 		assertErrorMessage(error, expectedErrorMessage);
 	}
 
+	@Test
+	public void getEditingDomain() {
+		final IEditorPart editor = open(USER_VIEW_MODEL, IEditorPart.class);
+		assertThat("Editor does not provide an editing domain", editor, instanceOf(IEditingDomainProvider.class));
+		final IEditingDomainProvider provider = (IEditingDomainProvider) editor;
+		assertThat("No editing domain provided", provider.getEditingDomain(), notNullValue());
+	}
+
+	@Test
+	public void selectionTrackingAndUndo() {
+		final IEditorPart editor = open(USER_VIEW_MODEL, IEditorPart.class);
+		assumeThat("Editor does not provide an editing domain", editor, instanceOf(IEditingDomainProvider.class));
+		final IEditingDomainProvider provider = (IEditingDomainProvider) editor;
+		assumeThat("No editing domain provided", provider.getEditingDomain(), notNullValue());
+
+		final ISelectionProvider selectionProvider = editor.getSite().getSelectionProvider();
+		assertThat("No selection provider for the editor site", selectionProvider, notNullValue());
+
+		final EditorActionBarContributor contributor = (EditorActionBarContributor) editor.getEditorSite()
+			.getActionBarContributor();
+		final IAction delete = contributor.getActionBars().getGlobalActionHandler(ActionFactory.DELETE.getId());
+		final IAction undo = contributor.getActionBars().getGlobalActionHandler(ActionFactory.UNDO.getId());
+
+		// Find a control to select
+		VControl control = null;
+		for (final Iterator<?> iter = provider.getEditingDomain().getResourceSet().getAllContents(); control == null
+			&& iter.hasNext();) {
+			final Object next = iter.next();
+			if (next instanceof VControl) {
+				control = (VControl) next;
+			}
+		}
+
+		assumeThat("Could not find a control in the view model", control, notNullValue());
+
+		selectionProvider.setSelection(new StructuredSelection(control));
+
+		final ISelection selection = selectionProvider.getSelection();
+		assertThat(selection, instanceOf(IStructuredSelection.class));
+		assertThat("Control not selected", ((IStructuredSelection) selection).getFirstElement(), is(control));
+
+		// Action enablement updates are deferred
+		SWTTestUtil.waitForUIThread();
+
+		// Delete the selected control
+		assertThat("Delete command not enabled", delete.isEnabled(), is(true));
+		delete.run();
+
+		assertThat("Control not deleted", control.eContainer(), nullValue());
+		assertThat("Editor not dirty", editor.isDirty(), is(true));
+
+		// Action enablement updates are deferred
+		SWTTestUtil.waitForUIThread();
+
+		// Undo the delete
+		assertThat("Undo command not enabled", undo.isEnabled(), is(true));
+		undo.run();
+
+		assertThat("Deletion not undone", control.eContainer(), notNullValue());
+		assertThat("Editor still dirty", editor.isDirty(), is(false));
+	}
+
+	@Test
+	public void copyPaste_Tree() throws WidgetNotFoundException, ParseException, InterruptedException {
+		SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
+		final Keyboard keyboard = KeyboardFactory.getAWTKeyboard();
+
+		final ViewEditorPart editor = open(USER_VIEW_MODEL, ViewEditorPart.class);
+		final Composite parent = getEditorParentComposite(editor);
+		final Tree tree = SWTTestUtil.findControl(parent, 0, Tree.class);
+		final TreeItem viewItem = tree.getItem(0);
+		final TreeItem controlItem0 = viewItem.getItem(0);
+		SWTTestUtil.selectTreeItem(controlItem0); // select the VControl
+
+		// Manually force focus to increase test stability because sometimes selecting a tree item programmatically
+		// doesn't set focus or at least not fast enough
+		tree.setFocus();
+		SWTTestUtil.waitForUIThread();
+		keyboard.pressShortcut(SWT.CTRL, 'c');
+		SWTTestUtil.waitForUIThread();
+
+		SWTTestUtil.selectTreeItem(viewItem);
+		SWTTestUtil.waitForUIThread();
+
+		tree.setFocus();
+		SWTTestUtil.waitForUIThread();
+		keyboard.pressShortcut(SWT.CTRL, 'v');
+		SWTTestUtil.waitForUIThread();
+		tree.update();
+		SWTTestUtil.waitForUIThread();
+
+		// At the beginning of the test the view had one child control. After copy and pasting, it should have 2
+		assertEquals("Number of VControls in the VView object", 2, editor.getView().getChildren().size());
+		assertEquals("Number of VControls in the tree", 2, viewItem.getItemCount());
+	}
+
+	@Test
+	public void copyPaste_Detail_TextControl() {
+		SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
+		final Keyboard keyboard = KeyboardFactory.getAWTKeyboard();
+
+		final ViewEditorPart editor = open(USER_VIEW_MODEL, ViewEditorPart.class);
+		final Clipboard clipboard = new Clipboard(Display.getCurrent());
+		clipboard.clearContents();
+		final Composite parent = getEditorParentComposite(editor);
+		final Tree tree = SWTTestUtil.findControl(parent, 0, Tree.class);
+		final TreeItem viewItem = tree.getItem(0);
+		final TreeItem controlItem0 = viewItem.getItem(0);
+		SWTTestUtil.selectTreeItem(controlItem0); // select the VControl
+		SWTTestUtil.waitForUIThread();
+
+		// Get the text field of a VControl's name
+		final Text text = SWTTestUtil.findControl(parent, 0, Text.class);
+		final String string = "TEST";
+		text.setText(string);
+		text.update();
+		SWTTestUtil.waitForUIThread();
+
+		final SWTBot bot = new SWTBot(parent);
+		final SWTBotText botText = bot.text(string);
+		botText.selectAll();
+		SWTTestUtil.waitForUIThread();
+		botText.setFocus();
+		// Press multiple times to increase test stability
+		for (int i = 0; i < 10; i++) {
+			keyboard.pressShortcut(SWT.CTRL, 'c');
+			SWTTestUtil.waitForUIThread();
+		}
+		text.setSelection(0);
+
+		// Check that copy to clip board worked
+		final Object contents = clipboard.getContents(TextTransfer.getInstance());
+		assertNotNull(contents);
+		assertEquals(string, contents);
+
+		botText.setFocus();
+		// Press multiple times to increase test stability
+		for (int i = 0; i < 10; i++) {
+			keyboard.pressShortcut(SWT.CTRL, 'v');
+			SWTTestUtil.waitForUIThread();
+		}
+		text.update();
+		SWTTestUtil.waitForUIThread();
+
+		assertTrue(text.getText().contains(string + string));
+	}
+
 	@After
 	public void closeAllEditors() {
 		getActivePage().closeAllEditors(false);
@@ -155,4 +338,18 @@
 			fail("Cannot access status field of error editor: " + e.getMessage());
 		}
 	}
+
+	Composite getEditorParentComposite(ViewEditorPart editor) {
+		Field parentField;
+		try {
+			parentField = ViewEditorPart.class.getDeclaredField("parent");
+			parentField.setAccessible(true);
+			final Object parentFieldValue = parentField.get(editor);
+			assertTrue(parentFieldValue instanceof Composite);
+			return (Composite) parentFieldValue;
+		} catch (NoSuchFieldException | SecurityException | IllegalAccessException ex) {
+			fail("Could not get parent composite of the view editor: " + ex.getMessage());
+			return null; // Never happens
+		}
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ide.util.test/META-INF/MANIFEST.MF
index 24f02cb..8c4b13b 100644
--- a/tests/org.eclipse.emf.ecp.ide.util.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.util.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.ide.util.test.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ide.util.test;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ide.util.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.ui;bundle-version="[3.106.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.common;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.common.ui;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.ecp.ide.util;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,1.10.0)"
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.ecp.ide.util;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,1.10.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.util.test
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.ide.util.test/pom.xml b/tests/org.eclipse.emf.ecp.ide.util.test/pom.xml
index 7706ebc..7a33312 100644
--- a/tests/org.eclipse.emf.ecp.ide.util.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ide.util.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ide.util.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ide.view.service.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ide.view.service.test/META-INF/MANIFEST.MF
index c7067a8..45da735 100644
--- a/tests/org.eclipse.emf.ecp.ide.view.service.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ide.view.service.test/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: IDEViewModelRegistry Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ide.view.service.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.ide.view.service.test;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.0.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.0.0,3.0.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.0.0,3.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.common.ui;bundle-version="[2.7.0,3.0.0)"
+Export-Package: org.eclipse.emf.ecp.ide.view.service.test;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ide.view.service;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.7.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ide.view.service.test
diff --git a/tests/org.eclipse.emf.ecp.ide.view.service.test/pom.xml b/tests/org.eclipse.emf.ecp.ide.view.service.test/pom.xml
index 3584c18..ba06d47 100644
--- a/tests/org.eclipse.emf.ecp.ide.view.service.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ide.view.service.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ide.view.service.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF
index 0a639d6..d0324fd 100644
--- a/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.integrationtest/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Integrationtest
 Bundle-SymbolicName: org.eclipse.emf.ecp.integrationtest
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.integrationtest.Activator
-Export-Package: org.eclipse.emf.ecp.integrationtest;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.integrationtest;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.eclipse.osgi;bundle-version="[3.7.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.integrationtest
+Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.integrationtest/pom.xml b/tests/org.eclipse.emf.ecp.integrationtest/pom.xml
index 55a96d8..8662405 100644
--- a/tests/org.eclipse.emf.ecp.integrationtest/pom.xml
+++ b/tests/org.eclipse.emf.ecp.integrationtest/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.integrationtest</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.quickfix.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.quickfix.test/META-INF/MANIFEST.MF
index ca5e3a4..cf90d80 100644
--- a/tests/org.eclipse.emf.ecp.quickfix.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.quickfix.test/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Model Quick Fix Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.quickfix.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.quickfix;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.ui.quickfix.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.quickfix;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.ui.quickfix.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
+ org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.quickfix.test
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml b/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml
index 2bfe900..6d15205 100644
--- a/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.quickfix.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.quickfix.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/.classpath b/tests/org.eclipse.emf.ecp.test.model.edit/.classpath
index 304e861..22f3064 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/.classpath
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs
index edc0222..97dce01 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/.settings/org.eclipse.jdt.core.prefs
@@ -26,9 +26,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -132,7 +132,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.test.model.edit/META-INF/MANIFEST.MF
index 3d13f5d..7129295 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Test Model Edit Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.test.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.test.university.provider.UniversityEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.test.university.provider;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.test.university.provider;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.test.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport
+ org.eclipse.emf.ecp.test.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.test.model.edit
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.test.model.edit/pom.xml b/tests/org.eclipse.emf.ecp.test.model.edit/pom.xml
index f9495bd..6c6d5ef 100644
--- a/tests/org.eclipse.emf.ecp.test.model.edit/pom.xml
+++ b/tests/org.eclipse.emf.ecp.test.model.edit/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.test.model.edit</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.test.model.feature/feature.xml b/tests/org.eclipse.emf.ecp.test.model.feature/feature.xml
index 320df3f..0a3808b 100644
--- a/tests/org.eclipse.emf.ecp.test.model.feature/feature.xml
+++ b/tests/org.eclipse.emf.ecp.test.model.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.ecp.test.model.feature"
       label="ECP Test Model Feature"
-      version="1.19.0.qualifier">
+      version="1.20.0.qualifier">
 
    <description url="http://www.example.com/description">
       [Enter Feature Description here.]
diff --git a/tests/org.eclipse.emf.ecp.test.model.feature/pom.xml b/tests/org.eclipse.emf.ecp.test.model.feature/pom.xml
index 5795996..b37c9eb 100644
--- a/tests/org.eclipse.emf.ecp.test.model.feature/pom.xml
+++ b/tests/org.eclipse.emf.ecp.test.model.feature/pom.xml
@@ -5,11 +5,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.test.model.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.test.model/.classpath b/tests/org.eclipse.emf.ecp.test.model/.classpath
index 64c5e31..eca7bdb 100644
--- a/tests/org.eclipse.emf.ecp.test.model/.classpath
+++ b/tests/org.eclipse.emf.ecp.test.model/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.jdt.core.prefs
index edbd6f6..efea61d 100644
--- a/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.emf.ecp.test.model/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +130,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/tests/org.eclipse.emf.ecp.test.model/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.test.model/META-INF/MANIFEST.MF
index 17e3b51..ad60ec4 100644
--- a/tests/org.eclipse.emf.ecp.test.model/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.test.model/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Test Model Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.test.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.test.university;version="1.19.0",
-  org.eclipse.emf.ecp.test.university.impl;version="1.19.0",
-  org.eclipse.emf.ecp.test.university.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.test.university;version="1.20.0",
+ org.eclipse.emf.ecp.test.university.impl;version="1.20.0",
+ org.eclipse.emf.ecp.test.university.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.test.model
diff --git a/tests/org.eclipse.emf.ecp.test.model/pom.xml b/tests/org.eclipse.emf.ecp.test.model/pom.xml
index 194c55d..b6a7c7b 100644
--- a/tests/org.eclipse.emf.ecp.test.model/pom.xml
+++ b/tests/org.eclipse.emf.ecp.test.model/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.test.model</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.ui.validation.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.validation.test/META-INF/MANIFEST.MF
index 1d4b1ed..ab3ffa6 100644
--- a/tests/org.eclipse.emf.ecp.ui.validation.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ui.validation.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Validation View Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.validation.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.ui.validation.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.ui.validation;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.ui.validation.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)"
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.validation.test
diff --git a/tests/org.eclipse.emf.ecp.ui.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.ui.validation.test/pom.xml
index c649d9d..6a9fa96 100644
--- a/tests/org.eclipse.emf.ecp.ui.validation.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ui.validation.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ui.validation.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/META-INF/MANIFEST.MF
index 45cce7f..87303b8 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/META-INF/MANIFEST.MF
@@ -2,25 +2,25 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.editor.controls.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.ui.view.editor.controls;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.ui.view.editor.controls.test;version="1.19.0",
-  org.eclipse.emf.ecp.ui.view.editor.test.model.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.view.editor.test.model.test.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.ui.view.editor.test.model.test.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.internal.editor.controls;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.internal.editor.handler;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.ui.view.editor.controls.test;version="1.20.0",
+ org.eclipse.emf.ecp.ui.view.editor.test.model.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.editor.test.model.test.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.ui.view.editor.test.model.test.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.editor.controls;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.editor.handler;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.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)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.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)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.editor.controls.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/pom.xml b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/pom.xml
index 1825f5a..8bf2993 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ui.view.editor.controls.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ui.view.editor.controls.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/META-INF/MANIFEST.MF
index cbeb188..b92e03d 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP String Modifier with Line Wrapping Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.linewrapper.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.view.linewrapper;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.ui.view.linewrapper.tests;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.ui.view.linewrapper;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.ui.view.linewrapper.tests;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.linewrapper.tests
diff --git a/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/pom.xml b/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/pom.xml
index 2d808f8..8ca8baa 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ui.view.linewrapper.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ui.view.linewrapper.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.view.swt.test/META-INF/MANIFEST.MF
index 0c889c9..acb0dd9 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: SWT Renderer Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.19.0",
-  org.eclipse.emf.ecp.ui.view.swt.test;version="1.19.0"
+Fragment-Host: org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.ui.view.swt;version="1.20.0",
+ org.eclipse.emf.ecp.ui.view.swt.test;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
+ org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.swt.test
diff --git a/tests/org.eclipse.emf.ecp.ui.view.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.ui.view.swt.test/pom.xml
index d22aef6..ff2f905 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ui.view.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ui.view.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.ui.view.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.ui.view.test/META-INF/MANIFEST.MF
index efef84d..cac68a1 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.ui.view.test/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.ui.view.test
-Bundle-Version: 1.19.0.qualifier
-Export-Package: org.eclipse.emf.ecp.ui.view.test;version="1.19.0"
+Bundle-Version: 1.20.0.qualifier
+Export-Package: org.eclipse.emf.ecp.ui.view.test;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="4.10.0",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.ui;bundle-version="3.104.0",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore;bundle-version="2.8.0",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="4.10.0",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.ui;bundle-version="3.104.0",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore;bundle-version="2.8.0",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.ui.view.test
diff --git a/tests/org.eclipse.emf.ecp.ui.view.test/pom.xml b/tests/org.eclipse.emf.ecp.ui.view.test/pom.xml
index 9a13d6d..e1031bf 100644
--- a/tests/org.eclipse.emf.ecp.ui.view.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.ui.view.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.ui.view.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/META-INF/MANIFEST.MF
index 14d4322..db8a23f 100644
--- a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP Diagnostician Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.diagnostician.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.validation.diagnostician.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.validation.diagnostician;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.validation.diagnostician.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.validation.diagnostician.test
diff --git a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/pom.xml b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/pom.xml
index c745993..0545c48 100644
--- a/tests/org.eclipse.emf.ecp.validation.diagnostician.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.validation.diagnostician.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.validation.diagnostician.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.validation.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.validation.test/META-INF/MANIFEST.MF
index babc077..1997e27 100644
--- a/tests/org.eclipse.emf.ecp.validation.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.validation.test/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.validation.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.validation;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.validation.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.validation.test.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.validation.test.test.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.validation.test.test.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.validation.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.test.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.test.test.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.validation.test.test.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
-  org.eclipse.emf.ecore;bundle-version="2.8.0",
-  org.junit;bundle-version="4.10.0",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="2.8.0",
+ org.junit;bundle-version="4.10.0",
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.validation.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.validation.test/pom.xml
index 2c1d14b..c01923e 100644
--- a/tests/org.eclipse.emf.ecp.validation.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.validation.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.validation.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/META-INF/MANIFEST.MF
index 6d85efa..3359301 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the Categorization Model's Edit Bundle
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.model.edit.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.categorization.model.edit.test;version="1.19.0";x-internal:=true,
- org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.19.0"
+Fragment-Host: org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.categorization.model.edit.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.categorization.model.provider;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.12.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)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.categorization.model.edit.test
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/pom.xml b/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/pom.xml
index c06ec95..ed0f2f6 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.categorization.model.edit.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.categorization.model.edit.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/META-INF/MANIFEST.MF
index 40d14fe..c9e0c83 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Categorization Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.categorization.swt.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.categorization.swt.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.19.0"
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.categorization.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.categorization.swt.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.categorization.swt;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.categorization.swt.test
 Import-Package: org.eclipse.swt.layout;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/pom.xml
index 7ec1f80..9e14762 100644
--- a/tests/org.eclipse.emf.ecp.view.categorization.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.categorization.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.categorization.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/META-INF/MANIFEST.MF
index 59cedbc..004226d 100644
--- a/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Compound Control SWT Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.compoundcontrol.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.compoundcontrol.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.19.0"
+Fragment-Host: org.eclipse.emf.ecp.view.compoundcontrol.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.compoundcontrol.swt;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.compoundcontrol.swt.test
 Import-Package: org.eclipse.swt.graphics;version="0.0.0",
-  org.eclipse.swt.layout;version="0.0.0"
+ org.eclipse.swt.layout;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/pom.xml
index 373f6db..8d65e6b 100644
--- a/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.compoundcontrol.swt.test/pom.xml
@@ -5,13 +5,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
   
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.compoundcontrol.swt.test</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
   
   <build>
diff --git a/tests/org.eclipse.emf.ecp.view.context.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.context.tests/META-INF/MANIFEST.MF
index 4f5276c..513c814 100644
--- a/tests/org.eclipse.emf.ecp.view.context.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.context.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms View Model Context Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.context.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.context.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.internal.context;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.context.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.context;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.equinox.ds;bundle-version="[1.4.300,2.0.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.equinox.ds;bundle-version="[1.4.300,2.0.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.context.tests
diff --git a/tests/org.eclipse.emf.ecp.view.context.tests/pom.xml b/tests/org.eclipse.emf.ecp.view.context.tests/pom.xml
index ccb475a..1d19d6b 100644
--- a/tests/org.eclipse.emf.ecp.view.context.tests/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.context.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.context.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/AllPluginTests for view.control.multireference.launch b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/AllPluginTests for view.control.multireference.launch
index 48c5e27..d79cb93 100644
--- a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/AllPluginTests for view.control.multireference.launch
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/AllPluginTests for view.control.multireference.launch
@@ -32,8 +32,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.css*1.8.0.v20170214-1941@default:default,org.apache.batik.util*1.8.0.v20170214-1941@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.scr@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.observable*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.property*1.6.100.v20170515-1119@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.w3c.css.sac@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference.tests@default:false,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.annotation.model@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.scr@1:true,org.apache.xmlgraphics@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.100.v20181030-1443@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core*1.3.0.v201303031735@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference.tests@default:false,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/META-INF/MANIFEST.MF
index 07a4741..6c78efc 100644
--- a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Multi Reference Control Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.control.multireference.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.control.multireference.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.internal.control.multireference;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.control.multireference.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.control.multireference;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.9.0,2.0.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)",
-  org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.9.0,2.0.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.3.0,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)",
+ org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="[1.1.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="[1.1.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.control.multireference.tests
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/pom.xml b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/pom.xml
index 0d0c7b2..403392c 100644
--- a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emf.ecp.view.control.multireference.tests</artifactId>
@@ -67,5 +67,5 @@
 		</plugins>
 	</build>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRenderer_PTest.java
index 7393ce9..ad43fba 100644
--- a/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.control.multireference.tests/src/org/eclipse/emf/ecp/view/internal/control/multireference/MultiReferenceRenderer_PTest.java
@@ -19,6 +19,7 @@
 import static org.hamcrest.Matchers.nullValue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
@@ -38,6 +39,7 @@
 import org.eclipse.core.databinding.observable.list.IObservableList;
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.command.BasicCommandStack;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.databinding.EMFProperties;
@@ -89,6 +91,8 @@
 import org.eclipse.emfforms.spi.swt.core.SWTDataElementIdHelper;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -96,6 +100,7 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -114,6 +119,11 @@
  */
 @RunWith(DatabindingClassRunner.class)
 public class MultiReferenceRenderer_PTest {
+	private static final String UUID_LINK = "UUID#link"; //$NON-NLS-1$
+	private static final String UUID_ADD = "UUID#add"; //$NON-NLS-1$
+	private static final String UUID_DELETE = "UUID#delete"; //$NON-NLS-1$
+	private static final String UUID_DOWN = "UUID#down"; //$NON-NLS-1$
+	private static final String UUID_UP = "UUID#up"; //$NON-NLS-1$
 	private static final String TEST_DESCRIPTION = "test-description"; //$NON-NLS-1$
 	private static final String TEST_DISPLAYNAME = "test-displayName"; //$NON-NLS-1$
 	private static Realm realm;
@@ -189,6 +199,15 @@
 		});
 		when(viewContext.getService(EMFFormsLocalizationService.class)).thenReturn(l10n);
 
+		// mock databinding to return a value property with changeable structural feature.
+		// Necessary due to the implementation of Bug 536250
+		final EStructuralFeature changeableFeature = mock(EStructuralFeature.class);
+		when(changeableFeature.isChangeable()).thenReturn(true);
+		final IValueProperty<?, ?> valueProperty = mock(IValueProperty.class);
+		when(valueProperty.getValueType()).thenReturn(changeableFeature);
+		when(databindingService.getValueProperty(any(VDomainModelReference.class), any(EObject.class)))
+			.thenReturn(valueProperty);
+
 		renderer = new MultiReferenceSWTRenderer(vControl, viewContext, reportService, databindingService,
 			labelProvider, templateProvider, imageRegistryService, l10n) {
 			@Override
@@ -527,15 +546,15 @@
 	public void testButtonData() {
 		showMoveButtons = true;
 		final Table table = createLeaguePlayersTable();
-		assertEquals("UUID#up", SWTTestUtil.findControl(table.getParent().getParent(), 0, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_UP, SWTTestUtil.findControl(table.getParent().getParent(), 0, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals("UUID#down", SWTTestUtil.findControl(table.getParent().getParent(), 1, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_DOWN, SWTTestUtil.findControl(table.getParent().getParent(), 1, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals("UUID#link", SWTTestUtil.findControl(table.getParent().getParent(), 2, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_LINK, SWTTestUtil.findControl(table.getParent().getParent(), 2, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals("UUID#add", SWTTestUtil.findControl(table.getParent().getParent(), 3, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_ADD, SWTTestUtil.findControl(table.getParent().getParent(), 3, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals("UUID#delete", SWTTestUtil.findControl(table.getParent().getParent(), 4, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_DELETE, SWTTestUtil.findControl(table.getParent().getParent(), 4, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
 	}
 
@@ -595,10 +614,14 @@
 	}
 
 	protected Table createLeaguePlayersTable() {
+		final League league = BowlingFactory.eINSTANCE.createLeague();
+		return createLeaguePlayersTable(league);
+	}
+
+	protected Table createLeaguePlayersTable(final League league) {
 		final EditingDomain domain = new AdapterFactoryEditingDomain(
 			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE), new BasicCommandStack());
 		final Resource bowling = domain.getResourceSet().createResource(URI.createURI("foo.ecore")); //$NON-NLS-1$
-		final League league = BowlingFactory.eINSTANCE.createLeague();
 		bowling.getContents().add(league);
 
 		final IObservableList<?> observableList = EMFEditProperties
@@ -661,28 +684,59 @@
 	}
 
 	/**
-	 * Test that the control is disabled when it's set to read only
+	 * Test that the control is disabled when it's set to read only.
 	 *
 	 * @throws DatabindingFailedException
 	 * @throws NoRendererFoundException
 	 * @throws NoPropertyDescriptorFoundExeption
 	 */
 	@Test
-	public void testReadOnlyDisablesControl()
+	public void testReadOnlyNotDisablesControl()
 		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
-		when(renderer.getVElement().isReadonly()).thenReturn(true);
+		showMoveButtons = true;
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(true);
+		when(renderer.getVElement().isEffectivelyEnabled()).thenReturn(true);
 		final TestObservableValue observableValue = mock(TestObservableValue.class);
 		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
 			observableValue);
 		when(observableValue.getObserved()).thenReturn(mock(EObject.class));
-		System.out.println(renderer.getVElement().isReadonly());
 		final Composite composite = (Composite) renderer.render(new SWTGridCell(0, 0, renderer), shell);
 		renderer.finalizeRendering(shell);
-		assertFalse(composite.isEnabled());
+		// only buttons shall be not visible
+		// main composite shall still be enabled
+		assertTrue(composite.isEnabled());
+	}
+
+	/**
+	 * Test that the control and buttons are visible when it's not read only.
+	 *
+	 * @throws DatabindingFailedException
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 */
+	@Test
+	public void testNotReadOnlyButtonsVisibility()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		showMoveButtons = true;
+		when(renderer.getVElement().isReadonly()).thenReturn(false);
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(false);
+		final TestObservableValue observableValue = mock(TestObservableValue.class);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			observableValue);
+		when(observableValue.getObserved()).thenReturn(mock(EObject.class));
+		final Composite composite = (Composite) renderer.render(new SWTGridCell(0, 0, renderer), shell);
+		renderer.finalizeRendering(shell);
+
+		checkButton(composite, UUID_UP, true, false);
+		checkButton(composite, UUID_DOWN, true, false);
+		checkButton(composite, UUID_DELETE, true, false);
+		checkNoButton(composite, UUID_LINK);
+		checkNoButton(composite, UUID_ADD);
 	}
 
 	/**
 	 * Test that the control is disabled when it's effectively set to read only because a parent is read only.
+	 * Test also buttons visibility
 	 *
 	 * @throws DatabindingFailedException
 	 * @throws NoRendererFoundException
@@ -691,7 +745,43 @@
 	@Test
 	public void testEffectivelyReadOnlyDisablesControl()
 		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		showMoveButtons = true;
 		when(renderer.getVElement().isReadonly()).thenReturn(false);
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(true);
+		when(renderer.getVElement().isEffectivelyEnabled()).thenReturn(true);
+		// Simulate control's parent that is set to readOnly
+		final VView parent = mock(VView.class);
+		when(parent.isReadonly()).thenReturn(true);
+		when(renderer.getVElement().eContainer()).thenReturn(parent);
+
+		final TestObservableValue observableValue = mock(TestObservableValue.class);
+		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			observableValue);
+		when(observableValue.getObserved()).thenReturn(mock(EObject.class));
+		final Composite composite = (Composite) renderer.render(new SWTGridCell(0, 0, renderer), shell);
+		renderer.finalizeRendering(shell);
+		// read only does not disable control, but hides button
+		assertTrue(composite.isEnabled());
+		checkButton(composite, UUID_UP, false, false);
+		checkButton(composite, UUID_DOWN, false, false);
+		checkButton(composite, UUID_DELETE, false, false);
+		checkNoButton(composite, UUID_LINK);
+		checkNoButton(composite, UUID_ADD);
+	}
+
+	/**
+	 * Test that the control is disabled when VElement enablement is set to false
+	 *
+	 * @throws DatabindingFailedException
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 */
+	@Test
+	public void testControlDisabled()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		showMoveButtons = true;
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(false);
+		when(renderer.getVElement().isEnabled()).thenReturn(false);
 
 		// Simulate control's parent that is set to readOnly
 		final VView parent = mock(VView.class);
@@ -702,10 +792,84 @@
 		when(databindingService.getObservableValue(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
 			observableValue);
 		when(observableValue.getObserved()).thenReturn(mock(EObject.class));
-		System.out.println(renderer.getVElement().isReadonly());
 		final Composite composite = (Composite) renderer.render(new SWTGridCell(0, 0, renderer), shell);
 		renderer.finalizeRendering(shell);
 		assertFalse(composite.isEnabled());
+
+		checkButton(composite, UUID_UP, true, false);
+		checkButton(composite, UUID_DOWN, true, false);
+		checkNoButton(composite, UUID_LINK);
+		checkButton(composite, UUID_DELETE, true, false);
+	}
+
+	/**
+	 * Test that the control is enabled when VElement enablement is set to true
+	 *
+	 * @throws DatabindingFailedException
+	 * @throws NoRendererFoundException
+	 * @throws NoPropertyDescriptorFoundExeption
+	 */
+	@Test
+	public void testControlEnabled()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		showMoveButtons = true;
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(false);
+		when(renderer.getVElement().isEffectivelyEnabled()).thenReturn(true);
+		when(renderer.getVElement().isEnabled()).thenReturn(true);
+		when(renderer.getVElement().isVisible()).thenReturn(true);
+
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(true);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
+
+		final League league = BowlingFactory.eINSTANCE.createLeague();
+		createPlayers(league, "player1", "player2", "player3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		final Table table = createLeaguePlayersTable(league);
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(false);
+		when(renderer.getVElement().isEffectivelyEnabled()).thenReturn(true);
+
+		/* setup rendering */
+		final SWTGridDescription gridDescription = renderer.getGridDescription(null);
+		final SWTGridCell lastGridCell = gridDescription.getGrid().get(gridDescription.getGrid().size() - 1);
+
+		/* render */
+		final Control control = renderer.render(lastGridCell, shell);
+		renderer.finalizeRendering(shell);
+		SWTTestUtil.findControl(control, 0, Table.class);
+
+		// check table itself
+		assertTrue(table.getVisible());
+		assertTrue(table.isEnabled());
+
+		final Button upButton = SWTTestUtil.findControlById(control, UUID_UP, Button.class);
+		checkControl(upButton, true, false);
+
+		final Button deleteButton = SWTTestUtil.findControlById(control, UUID_DELETE, Button.class);
+		checkControl(deleteButton, true, false);
+
+		final IObservableList<?> list = databindingService.getObservableList(null, league);
+		renderer.getTableViewer().setSelection(new StructuredSelection(list.get(0)), true);
+		SWTTestUtil.waitForUIThread();
+
+		// up may be false, as first element is selected (not yet implemented)
+		checkControl(upButton, true, false);
+		checkControl(deleteButton, true, true);
+
+		renderer.getTableViewer().setSelection(new StructuredSelection(list.get(1)), true);
+		SWTTestUtil.waitForUIThread();
+
+		// up may be false, as first element is selected (not yet implemented)
+		checkControl(upButton, true, true);
+		checkControl(deleteButton, true, true);
+	}
+
+	private void createPlayers(League league, String... names) {
+		for (final String name : names) {
+			final Player p = BowlingFactory.eINSTANCE.createPlayer();
+			p.setName(name);
+			league.getPlayers().add(p);
+		}
 	}
 
 	/**
@@ -782,38 +946,219 @@
 		assertThat(deleteButton.getToolTipText(), is("Delete")); //$NON-NLS-1$
 	}
 
-	public void compare() {
-		// final MultiReferenceSWTRenderer multi = new MultiReferenceSWTRenderer(mock(VControl.class),
-		// mock(ViewModelContext.class), mock(ReportService.class), mock(EMFFormsDatabinding.class),
-		// mock(EMFFormsLabelProvider.class), mock(VTViewTemplateProvider.class), mock(ImageRegistryService.class));
+	/**
+	 * For a cross ref the 'link' button must still be shown even if the reference style property is set to false.
+	 */
+	@Test
+	public void linkButton_crossRefReferenceStyleFalse() {
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(false);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
 
-		// Label: Player A
-		final Player pA = BowlingFactory.eINSTANCE.createPlayer();
-		pA.setName("A"); //$NON-NLS-1$
+		final Composite rendered = createFanVisitedTournaments();
+		final Button linkButton = SWTTestUtil.findControl(rendered, 0, Button.class);
+		assertThat(linkButton.getToolTipText(), is("Link Tournament")); //$NON-NLS-1$
+		final Button createButton = SWTTestUtil.findControl(rendered, 1, Button.class);
+		assertThat(createButton.getToolTipText(), is("Create and link new Tournament")); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(rendered, 2, Button.class);
+		assertThat(deleteButton.getToolTipText(), is("Delete")); //$NON-NLS-1$
+	}
 
-		// Label: Player C
-		final Player pC = BowlingFactory.eINSTANCE.createPlayer();
-		pA.setName("C"); //$NON-NLS-1$
+	/**
+	 * By default, the 'link new' button must be shown for containment references (legacy behavior).
+	 */
+	@Test
+	public void linkButton_containmentRefNoReferenceStyle() {
+		final Composite rendered = createLeaguePlayersTable().getParent().getParent();
+		final Button linkButton = SWTTestUtil.findControl(rendered, 0, Button.class);
+		assertThat(linkButton.getToolTipText(), is("Link Player")); //$NON-NLS-1$
+		final Button createButton = SWTTestUtil.findControl(rendered, 1, Button.class);
+		assertThat(createButton.getToolTipText(), is("Create and link new Player")); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(rendered, 2, Button.class);
+		assertThat(deleteButton.getToolTipText(), is("Delete")); //$NON-NLS-1$
+	}
 
-		// Label: Player B
-		final Player pB = BowlingFactory.eINSTANCE.createPlayer();
-		pA.setName("B"); //$NON-NLS-1$
+	@Test
+	public void linkButton_containmentRefReferenceStyleTrue() {
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(true);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
 
-		assertEquals(0, renderer.compare(0, pA, pB));
-		assertEquals(0, renderer.compare(0, pA, pC));
-		assertEquals(0, renderer.compare(0, pB, pC));
+		final Composite rendered = createLeaguePlayersTable().getParent().getParent();
+		final Button linkButton = SWTTestUtil.findControl(rendered, 0, Button.class);
+		assertThat(linkButton.getToolTipText(), is("Link Player")); //$NON-NLS-1$
+		final Button createButton = SWTTestUtil.findControl(rendered, 1, Button.class);
+		assertThat(createButton.getToolTipText(), is("Create and link new Player")); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(rendered, 2, Button.class);
+		assertThat(deleteButton.getToolTipText(), is("Delete")); //$NON-NLS-1$
+	}
 
-		// direction UP
-		assertEquals(0, renderer.compare(1, pA, pA));
-		assertEquals(-1, renderer.compare(1, pA, pB));
-		assertEquals(-1, renderer.compare(1, pA, pC));
-		assertEquals(-1, renderer.compare(1, pB, pC));
+	@Test
+	public void linkButton_containmentRefReferenceStyleFalse() {
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(false);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
 
-		// direction DOWN
-		assertEquals(0, renderer.compare(2, pA, pA));
-		assertEquals(1, renderer.compare(2, pA, pB));
-		assertEquals(1, renderer.compare(2, pA, pC));
-		assertEquals(1, renderer.compare(2, pB, pC));
+		final Composite rendered = createLeaguePlayersTable().getParent().getParent();
+		final Button createButton = SWTTestUtil.findControl(rendered, 0, Button.class);
+		assertThat(createButton.getToolTipText(), is("Create and link new Player")); //$NON-NLS-1$
+		final Button deleteButton = SWTTestUtil.findControl(rendered, 1, Button.class);
+		assertThat(deleteButton.getToolTipText(), is("Delete")); //$NON-NLS-1$ NON-NLS-1$
+
+		try {
+			SWTTestUtil.findControl(rendered, 2, Button.class);
+			fail(
+				"There must not be a third button for a containment reference with disabled 'link' button."); //$NON-NLS-1$
+		} catch (final NoSuchElementException ex) {
+			// This is what we expect => Test is successful
+			// Cannot use expected in @Test annotation because the test must not succeed if the 'create and link' or the
+			// delete button are not found.
+		}
+	}
+
+	@Test
+	public void compare()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		showMoveButtons = false;
+
+		// Label: Player a2
+		final Player p1 = BowlingFactory.eINSTANCE.createPlayer();
+		p1.setName("a2"); //$NON-NLS-1$
+
+		// Label: Player a10
+		final Player p2 = BowlingFactory.eINSTANCE.createPlayer();
+		p2.setName("a10a"); //$NON-NLS-1$
+
+		// Label: Player a10a
+		final Player p3 = BowlingFactory.eINSTANCE.createPlayer();
+		p3.setName("a10"); //$NON-NLS-1$
+
+		final League league = BowlingFactory.eINSTANCE.createLeague();
+		league.getPlayers().add(p1);
+		league.getPlayers().add(p2);
+		league.getPlayers().add(p3);
+
+		final Table playersTable = createLeaguePlayersTable(league);
+
+		// Initially, items should be sorted by insertion order
+		assertEquals(SWT.NONE, playersTable.getSortDirection());
+		assertItemOrder(playersTable, p1, p2, p3);
+
+		SWTTestUtil.selectWidget(playersTable.getColumn(0));
+		SWTTestUtil.waitForUIThread();
+
+		// ascending
+		assertEquals(SWT.UP, playersTable.getSortDirection());
+		assertItemOrder(playersTable, p1, p3, p2);
+
+		SWTTestUtil.selectWidget(playersTable.getColumn(0));
+		SWTTestUtil.waitForUIThread();
+
+		// descending
+		assertEquals(SWT.DOWN, playersTable.getSortDirection());
+		assertItemOrder(playersTable, p2, p3, p1);
+
+		SWTTestUtil.selectWidget(playersTable.getColumn(0));
+		SWTTestUtil.waitForUIThread();
+
+		// insertion order again
+		assertEquals(SWT.NONE, playersTable.getSortDirection());
+		assertItemOrder(playersTable, p1, p2, p3);
+	}
+
+	private static void assertItemOrder(Table table, Object... objects) {
+		assertEquals(objects.length, table.getItemCount());
+		final TableItem[] items = table.getItems();
+		for (int i = 0; i < items.length; i++) {
+			assertSame(objects[i], items[i].getData());
+		}
+	}
+
+	@Test
+	public void testVisibleOnWritable()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(true);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
+
+		createLeaguePlayersTable();
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(false);
+		when(renderer.getVElement().isEffectivelyEnabled()).thenReturn(true);
+
+		/* setup rendering */
+		final SWTGridDescription gridDescription = renderer.getGridDescription(null);
+		final SWTGridCell lastGridCell = gridDescription.getGrid().get(gridDescription.getGrid().size() - 1);
+
+		/* render */
+		final Control control = renderer.render(lastGridCell, shell);
+		renderer.finalizeRendering(shell);
+		final Button upButton = SWTTestUtil.findControl(control, 0, Button.class);
+		final Table table = SWTTestUtil.findControl(control, 0, Table.class);
+
+		// check table itself
+		assertTrue(table.getVisible());
+		assertTrue(table.isEnabled());
+		assertTrue(upButton.getEnabled());
+	}
+
+	@Test
+	public void testActivateOnEnable()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(true);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
+
+		createLeaguePlayersTable();
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(false);
+		when(renderer.getVElement().isEffectivelyEnabled()).thenReturn(true);
+
+		/* setup rendering */
+		final SWTGridDescription gridDescription = renderer.getGridDescription(null);
+		final SWTGridCell lastGridCell = gridDescription.getGrid().get(gridDescription.getGrid().size() - 1);
+
+		/* render */
+		final Control control = renderer.render(lastGridCell, shell);
+		renderer.finalizeRendering(shell);
+		final Button upButton = SWTTestUtil.findControl(control, 0, Button.class);
+		final Table table = SWTTestUtil.findControl(control, 0, Table.class);
+
+		// check table itself
+		assertTrue(table.isEnabled());
+
+		checkControl(upButton, true, true);
+		assertTrue(upButton.getParent().getVisible());
+
+	}
+
+	@Test
+	public void testButtonsNotVisibleOnReadOnly()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(true);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
+
+		createLeaguePlayersTable();
+		when(renderer.getVElement().isEffectivelyReadonly()).thenReturn(true);
+		when(renderer.getVElement().isEffectivelyEnabled()).thenReturn(true);
+
+		/* setup rendering */
+		final SWTGridDescription gridDescription = renderer.getGridDescription(null);
+		final SWTGridCell lastGridCell = gridDescription.getGrid().get(gridDescription.getGrid().size() - 1);
+
+		/* render */
+		final Control control = renderer.render(lastGridCell, shell);
+		renderer.finalizeRendering(shell);
+		final Button upButton = SWTTestUtil.findControl(control, 0, Button.class);
+
+		/* by default, up is disabled (no selection) */
+		assertFalse(upButton.getVisible());
 	}
 
 	/**
@@ -824,4 +1169,21 @@
 	 */
 	public interface TestObservableValue extends IObservableValue, IObserving {
 	}
+
+	private void checkButton(Composite root, String elementId, boolean visible, boolean enabled) {
+		final Button button = SWTTestUtil.findControlById(root, elementId, Button.class);
+		checkControl(button, visible, enabled);
+	}
+
+	private void checkNoButton(Composite root, String elementId) {
+		final Button button = SWTTestUtil.findControlById(root, elementId, Button.class);
+		assertThat(button, nullValue());
+	}
+
+	private void checkControl(Control control, boolean visible, boolean enabled) {
+		assertThat(control, notNullValue());
+		assertThat(control.getVisible(), is(visible));
+		// no selection
+		assertThat(control.getEnabled(), is(enabled));
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.core.swt.tests/META-INF/MANIFEST.MF
index 901416e..4e1e13f 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/META-INF/MANIFEST.MF
@@ -2,37 +2,37 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.core.swt.tests;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.core.swt.test.model;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.core.swt.test.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.core.swt.test.model.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.core.swt.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.core.swt;version="1.19.0",
-  org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.core.swt.test.model;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.core.swt.test.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.core.swt.test.model.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.core.swt.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.internal.core.swt.renderer;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.core.swt;version="1.20.0",
+ org.eclipse.emf.ecp.view.spi.core.swt.renderer;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)",
-  org.objenesis;bundle-version="1.0.0",
-  org.eclipse.emfforms.swt.common.test;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.3.0,2.0.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.swt.layout;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)",
+ org.objenesis;bundle-version="1.0.0",
+ org.eclipse.emfforms.swt.common.test;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.core.swt.tests
 Import-Package: com.ibm.icu.text;version="52.1.1",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.swt.widgets;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/pom.xml b/tests/org.eclipse.emf.ecp.view.core.swt.tests/pom.xml
index d8a1df1..5226f25 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emf.ecp.view.core.swt.tests</artifactId>
@@ -62,5 +62,5 @@
 		</plugins>
 	</build>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlRenderer_PTest.java
index b0a0616..565ae69 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/BooleanControlRenderer_PTest.java
@@ -167,7 +167,7 @@
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		Mockito.reset(getDatabindingService());
 
-		mockDatabindingIsUnsettable();
+		mockDatabindingIsSettableAndChangeable();
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(
 				mockedObservable);
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlRenderer_PTest.java
index 7f771ef..cb991f9 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/DateTimeControlRenderer_PTest.java
@@ -85,7 +85,6 @@
 	private static final String SELECTTIME = "Select Time";
 
 	@Before
-	@SuppressWarnings("unchecked")
 	public void before() throws DatabindingFailedException {
 		realm = new DefaultRealm();
 		final ReportService reportService = mock(ReportService.class);
@@ -133,7 +132,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void renderControlLabelAlignmentNone()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.NONE);
@@ -151,7 +149,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void renderControlLabelAlignmentLeft()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.LEFT);
@@ -340,10 +337,10 @@
 	 * @throws NoPropertyDescriptorFoundExeption
 	 * @throws DatabindingFailedException
 	 */
-	@SuppressWarnings({ "unchecked", "rawtypes" })
+	@SuppressWarnings({ "rawtypes" })
 	private DateTime[] setUpDatabindingTest(final IObservableValue mockedObservable) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
-		mockDatabindingIsUnsettable();
+		mockDatabindingIsSettableAndChangeable();
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(
 				mockedObservable);
@@ -401,7 +398,6 @@
 	 * The control should behave the same way as the default one (with no VDateTimeDisplayAttachment set).
 	 */
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testDateTimeDisplayAttachmentDateAndTime()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 
@@ -432,7 +428,6 @@
 	 * The control should have only the date widget visible.
 	 */
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testDateTimeDisplayAttachmentDateOnly()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 
@@ -464,7 +459,6 @@
 	 * The control should have only the time widget visible.
 	 */
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testDateTimeDisplayAttachmentTimeOnly()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 
@@ -491,7 +485,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testEffectivelyReadOnlyDeactivatesControl()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		final EStructuralFeature mockedEStructuralFeature = mock(EStructuralFeature.class);
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerRenderer_PTest.java
index cb362e3..257c06e 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/EnumComboViewerRenderer_PTest.java
@@ -59,7 +59,6 @@
 	private DefaultRealm realm;
 
 	@Before
-	@SuppressWarnings("unchecked")
 	public void before() throws DatabindingFailedException {
 		realm = new DefaultRealm();
 		final ReportService reportService = mock(ReportService.class);
@@ -162,10 +161,9 @@
 	 * @throws NoPropertyDescriptorFoundExeption
 	 * @throws DatabindingFailedException
 	 */
-	@SuppressWarnings("unchecked")
 	private Combo setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
-		mockDatabindingIsUnsettable();
+		mockDatabindingIsSettableAndChangeable();
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(
 				mockedObservable);
@@ -193,7 +191,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testEffectivelyReadOnlyDeactivatesControl()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, TestEnum.B,
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_Containment_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_Containment_PTest.java
index 8ebe6a0..37aca01 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_Containment_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_Containment_PTest.java
@@ -12,12 +12,14 @@
 package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.Collections;
+import java.util.NoSuchElementException;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
@@ -156,4 +158,50 @@
 		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
 		assertEquals("Delete", deleteButton.getToolTipText());
 	}
+
+	/** For containment references, the 'link' button must be shown by default (:= reference style == true). */
+	@Test
+	public void linkExistingButton_noReferenceStyle()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertEquals("Link Merchandise", linkButton.getToolTipText());
+		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText());
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
+		assertEquals("Delete", deleteButton.getToolTipText());
+	}
+
+	/**
+	 * For containment references, the 'link' button must not be shown if the reference style property
+	 * is set to false.
+	 */
+	@Test
+	public void linkButton_referenceStyleFalse()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(false);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertEquals("Create and link new Merchandise", createAndLinkButton.getToolTipText());
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertEquals("Delete", deleteButton.getToolTipText());
+		try {
+			SWTTestUtil.findControl(renderControl, 2, Button.class);
+			fail(
+				"There must not be a third button for a containment reference with disabled 'link' button."); //$NON-NLS-1$
+		} catch (final NoSuchElementException ex) {
+			// This is what we expect => Test is successful
+			// Cannot use expected in @Test annotation because the test must not succeed if the 'create and link' or the
+			// delete button are not found.
+		}
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_CrossReference_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_CrossReference_PTest.java
index 757a52e..5b27f91 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_CrossReference_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/LinkControlSWTRenderer_CrossReference_PTest.java
@@ -187,4 +187,43 @@
 			// button are not found.
 		}
 	}
+
+	/** For cross references, the 'link' button must be shown by default (:= reference style == true). */
+	@Test
+	public void linkExistingButton_noReferenceStyle()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertEquals("Link Player", linkButton.getToolTipText());
+		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText());
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
+		assertEquals("Delete", deleteButton.getToolTipText());
+	}
+
+	/**
+	 * For cross references, the 'link' button must also be shown if the reference style property
+	 * is set to false.
+	 */
+	@Test
+	public void linkButton_referenceStyleFalse()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+		final VTReferenceStyleProperty property = VTReferenceFactory.eINSTANCE.createReferenceStyleProperty();
+		property.setShowLinkButtonForContainmentReferences(false);
+		when(templateProvider.getStyleProperties(any(VElement.class), any(ViewModelContext.class)))
+			.thenReturn(Collections.<VTStyleProperty> singleton(property));
+
+		final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+		getRenderer().finalizeRendering(getShell());
+
+		final Button linkButton = SWTTestUtil.findControl(renderControl, 0, Button.class);
+		assertEquals("Link Player", linkButton.getToolTipText());
+		final Button createAndLinkButton = SWTTestUtil.findControl(renderControl, 1, Button.class);
+		assertEquals("Create and link new Player", createAndLinkButton.getToolTipText());
+		final Button deleteButton = SWTTestUtil.findControl(renderControl, 2, Button.class);
+		assertEquals("Delete", deleteButton.getToolTipText());
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlRenderer_PTest.java
index 41e1dd8..8acf37b 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/NumberControlRenderer_PTest.java
@@ -307,7 +307,7 @@
 	 */
 	private Text setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
-		mockDatabindingIsUnsettable();
+		mockDatabindingIsSettableAndChangeable();
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(
 				mockedObservable, new ObservingWritableValue(mockedObservable));
@@ -324,7 +324,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testEffectivelyReadOnlyDeactivatesControl()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, 1,
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewRenderer_PTest.java
index 80c299d..047b789 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/ViewRenderer_PTest.java
@@ -27,7 +27,6 @@
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
 import org.eclipse.emfforms.spi.common.locale.EMFFormsLocaleProvider;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
@@ -64,14 +63,13 @@
 	public void setUp() {
 		realm = new DefaultRealm();
 		final ReportService reportService = mock(ReportService.class);
-		final EMFFormsDatabinding databindingService = mock(EMFFormsDatabinding.class);
 		rendererFactory = mock(EMFFormsRendererFactory.class);
 		final EMFFormsLocaleProvider localeProvider = mock(EMFFormsLocaleProvider.class);
 		view = Mockito.mock(VView.class);
 
 		context = Mockito.mock(ViewModelContext.class);
 		shell = new Shell();
-		viewRenderer = new ViewSWTRenderer(view, context, reportService, rendererFactory, databindingService,
+		viewRenderer = new ViewSWTRenderer(view, context, reportService, rendererFactory,
 			localeProvider);
 		viewRenderer.init();
 	}
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlRenderer_PTest.java
index 5fed621..e5d15d0 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/internal/core/swt/renderer/XMLDateControlRenderer_PTest.java
@@ -69,7 +69,6 @@
 	private DefaultRealm realm;
 
 	@Before
-	@SuppressWarnings("unchecked")
 	public void before() throws DatabindingFailedException {
 		realm = new DefaultRealm();
 		final ReportService reportService = mock(ReportService.class);
@@ -96,7 +95,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void renderControlLabelAlignmentNone()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.NONE);
@@ -116,7 +114,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void renderControlLabelAlignmentLeft()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		setMockLabelAlignment(LabelAlignment.LEFT);
@@ -227,11 +224,10 @@
 	 * @throws NoPropertyDescriptorFoundExeption
 	 * @throws DatabindingFailedException
 	 */
-	@SuppressWarnings("unchecked")
 	private Text setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 		Mockito.reset(getDatabindingService());
-		mockDatabindingIsUnsettable();
+		mockDatabindingIsSettableAndChangeable();
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(
 				mockedObservable, new ObservingWritableValue(mockedObservable));
@@ -276,7 +272,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testEffectivelyReadOnlyDeactivatesControl()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
 
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRendererUnsettable_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRendererUnsettable_PTest.java
index 0829b00..dc684d9 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRendererUnsettable_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRendererUnsettable_PTest.java
@@ -25,6 +25,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
@@ -62,7 +63,7 @@
  * @author Lucas Koehler
  *
  */
-public class TextControlRendererUnsettable_PTest extends AbstractControl_PTest {
+public class TextControlRendererUnsettable_PTest extends AbstractControl_PTest<VControl> {
 
 	private DefaultRealm realm;
 	private VTUnsettableStyleProperty unsettableStyleProperty;
@@ -102,7 +103,7 @@
 	}
 
 	@Override
-	protected void mockDatabindingIsUnsettable() throws DatabindingFailedException {
+	protected void mockDatabindingIsSettableAndChangeable() throws DatabindingFailedException {
 	}
 
 	/**
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java
index 81d1d2f..c3b1984 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java
@@ -29,6 +29,7 @@
 import org.eclipse.emf.ecp.test.common.DefaultRealm;
 import org.eclipse.emf.ecp.view.core.swt.tests.ObservingWritableValue;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
 import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
@@ -52,12 +53,11 @@
 import org.junit.Test;
 import org.mockito.Mockito;
 
-public class TextControlRenderer_PTest extends AbstractControl_PTest {
+public class TextControlRenderer_PTest extends AbstractControl_PTest<VControl> {
 
 	private DefaultRealm realm;
 
 	@Before
-	@SuppressWarnings("unchecked")
 	public void before() throws DatabindingFailedException {
 		realm = new DefaultRealm();
 		final ReportService reportService = mock(ReportService.class);
@@ -79,7 +79,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void renderControlLabelAlignmentNone()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
 		NoLabelFoundException {
@@ -101,7 +100,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void renderControlLabelAlignmentLeft()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
 		NoLabelFoundException {
@@ -208,13 +206,12 @@
 	 * @throws DatabindingFailedException if the databinding failed
 	 * @throws NoLabelFoundException
 	 */
-	@SuppressWarnings("unchecked")
 	private Text setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
 		NoPropertyDescriptorFoundExeption, DatabindingFailedException, NoLabelFoundException {
 		when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
 			Observables.constantObservableValue("antiException"));
 		Mockito.reset(getDatabindingService());
-		mockDatabindingIsUnsettable();
+		mockDatabindingIsSettableAndChangeable();
 		when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
 			.thenReturn(
 				mockedObservable, new ObservingWritableValue(mockedObservable));
@@ -235,7 +232,7 @@
 	 * @throws NoLabelFoundException
 	 */
 	@Test
-	@SuppressWarnings({ "unchecked", "rawtypes" })
+	@SuppressWarnings({ "rawtypes" })
 	public void testLabelServiceUsageTextField() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
 		DatabindingFailedException, NoLabelFoundException {
 		final IObservableValue testDisplayName = Observables.constantObservableValue("test-displayname", String.class);
@@ -264,7 +261,6 @@
 	}
 
 	@Test
-	@SuppressWarnings("unchecked")
 	public void testEffectivelyReadOnlyDeactivatesControl()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException,
 		NoLabelFoundException {
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/META-INF/MANIFEST.MF
index 2d56110..6750648 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,41 +2,41 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the Custom SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.custom.ui.swt.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.custom.ui.swt.test.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.test;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.equinox.common;bundle-version="[3.6.0,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.custom.ui.swt.test;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.equinox.common;bundle-version="[3.6.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.index;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.jface.viewers;version="0.0.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.jface.viewers;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.custom.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/pom.xml
index 9d95809..3f7c495 100644
--- a/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.custom.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.custom.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.feature/feature.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.feature/feature.xml
index ca14dbf..a3f5415 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.feature/feature.xml
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.feature/feature.xml
@@ -2,12 +2,12 @@
 <feature
       id="org.eclipse.emf.ecp.view.dynamictree.feature"
       label="Dynamic Tree Feature"
-      version="1.19.0.qualifier"
+      version="1.20.0.qualifier"
       provider-name="Eclipse Modeling Project"
       plugin="org.eclipse.emf.ecp.view.dynamictree.model"
       image="eclipse_update_120.jpg"
       license-feature="org.eclipse.emf.ecp.license.feature"
-      license-feature-version="1.19.0.qualifier">
+      license-feature-version="1.20.0.qualifier">
 
    <description>
       %description
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.feature/pom.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.feature/pom.xml
index a3db7b1..214c950 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.feature/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.feature/pom.xml
@@ -5,11 +5,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.dynamictree.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/META-INF/MANIFEST.MF
index 8a873b6..2657e01 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dynamic Containment Tree Edit Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model.edit;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.emf.ecp.view.dynamictree.model.provider.DynamicTreeEditPlugin$Implementation
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.provider;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.provider;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecore.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.categorization.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.dynamictree.model.edit
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/pom.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/pom.xml
index 59576d2..ea7ea06 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model.edit/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.view.dynamictree.model.edit</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/META-INF/MANIFEST.MF
index 5cf67d0..7afab8b 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/META-INF/MANIFEST.MF
@@ -2,39 +2,39 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dynamic Containment Tree Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.dynamictree.model.test.Activator
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.test;version="1.19.0";
-   uses:="org.eclipse.emf.ecore,
-    org.eclipse.core.databinding,
-    org.eclipse.emf.ecp.view.context,
-    org.eclipse.emf.ecp.internal.ui.view.renderer,
-    org.osgi.framework,
-    org.eclipse.emf.ecp.view.dynamictree.model,
-    org.eclipse.emf.edit.provider,
-    org.eclipse.emf.ecp.edit,
-    org.eclipse.emf.edit.domain,
-    org.eclipse.emf.ecp.internal.ui.view.builders"
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.model.test;version="1.20.0";
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.core.databinding,
+   org.eclipse.emf.ecp.view.context,
+   org.eclipse.emf.ecp.internal.ui.view.renderer,
+   org.osgi.framework,
+   org.eclipse.emf.ecp.view.dynamictree.model,
+   org.eclipse.emf.edit.provider,
+   org.eclipse.emf.ecp.edit,
+   org.eclipse.emf.edit.domain,
+   org.eclipse.emf.ecp.internal.ui.view.builders"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.junit;bundle-version="4.11.0",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.6.200,2.0.0)",
-  org.eclipse.swt;bundle-version="[3.102.1,4.0.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.19.0,1.20.0)"
+ org.junit;bundle-version="4.11.0",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.1,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.6.200,2.0.0)",
+ org.eclipse.swt;bundle-version="[3.102.1,4.0.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.dynamictree.model.test
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/pom.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/pom.xml
index 490e483..b5f9f56 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.dynamictree.model.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.dynamictree.model/META-INF/MANIFEST.MF
index 92050fc..f0bc584 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Dynamic Containment Tree Model Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.model;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.dynamictree.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.dynamictree.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.dynamictree.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.dynamictree.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)";visibility:=reexport,
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)";visibility:=reexport,
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.dynamictree.model
 Service-Component: OSGI-INF/dynamicContainmentTreeDMRConverter.xml
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.model/pom.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.model/pom.xml
index 93df498..6f4caa4 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.model/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.model/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.view.dynamictree.model</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/META-INF/MANIFEST.MF
index 0c65780..dba6fde 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Dynamic Tree SWT UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.ui.swt;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui.swt;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui.swt;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.dynamictree.ui.swt
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.core.services.databinding;version="[1.19.0,1.20.0)",
-  org.eclipse.jface.layout;version="0.0.0",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.core.services.databinding;version="[1.20.0,1.21.0)",
+ org.eclipse.jface.layout;version="0.0.0",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/pom.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/pom.xml
index cc5b5ea..b99e82f 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/pom.xml
@@ -7,11 +7,11 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-tests-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>

 	</parent>

 

   <artifactId>org.eclipse.emf.ecp.view.dynamictree.ui.swt</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java
index 72dae3d..e30803b 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentItemRenderer.java
@@ -19,7 +19,6 @@
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
@@ -32,15 +31,12 @@
  */
 public class SWTDynamicContainmentItemRenderer extends ContainerSWTRenderer<DynamicContainmentItem> {
 
-	private static final EMFFormsDatabinding EMFFORMS_DATABINDING;
 	private static final EMFFormsRendererFactory EMFFORMS_RENDERER_FACTORY;
 
 	static {
 		final BundleContext bundleContext = FrameworkUtil.getBundle(SWTDynamicContainmentTreeRenderer.class)
 			.getBundleContext();
-		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
-			.getServiceReference(EMFFormsDatabinding.class);
-		EMFFORMS_DATABINDING = bundleContext.getService(emfFormsDatabindingServiceReference);
+
 		final ServiceReference<EMFFormsRendererFactory> emfFormsLabelProviderServiceReference = bundleContext
 			.getServiceReference(EMFFormsRendererFactory.class);
 		EMFFORMS_RENDERER_FACTORY = bundleContext.getService(emfFormsLabelProviderServiceReference);
@@ -53,8 +49,7 @@
 	 */
 	public SWTDynamicContainmentItemRenderer(DynamicContainmentItem vElement, ViewModelContext viewContext,
 		ReportService reportService) {
-		super(vElement, viewContext, reportService, EMFFORMS_RENDERER_FACTORY, EMFFORMS_DATABINDING);
-		// TODO Auto-generated constructor stub
+		super(vElement, viewContext, reportService, EMFFORMS_RENDERER_FACTORY);
 	}
 
 	/**
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java
index ba08df7..a859c02 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui.swt/src/org/eclipse/emf/ecp/view/dynamictree/ui/swt/SWTDynamicContainmentTreeRenderer.java
@@ -19,7 +19,6 @@
 import org.eclipse.emf.ecp.view.spi.core.swt.ContainerSWTRenderer;
 import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
 import org.eclipse.emfforms.spi.common.report.ReportService;
-import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererFactory;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
@@ -32,15 +31,12 @@
  */
 public class SWTDynamicContainmentTreeRenderer extends ContainerSWTRenderer<DynamicContainmentTree> {
 
-	private static final EMFFormsDatabinding EMFFORMS_DATABINDING;
 	private static final EMFFormsRendererFactory EMFFORMS_RENDERER_FACTORY;
 
 	static {
 		final BundleContext bundleContext = FrameworkUtil.getBundle(SWTDynamicContainmentTreeRenderer.class)
 			.getBundleContext();
-		final ServiceReference<EMFFormsDatabinding> emfFormsDatabindingServiceReference = bundleContext
-			.getServiceReference(EMFFormsDatabinding.class);
-		EMFFORMS_DATABINDING = bundleContext.getService(emfFormsDatabindingServiceReference);
+
 		final ServiceReference<EMFFormsRendererFactory> emfFormsLabelProviderServiceReference = bundleContext
 			.getServiceReference(EMFFormsRendererFactory.class);
 		EMFFORMS_RENDERER_FACTORY = bundleContext.getService(emfFormsLabelProviderServiceReference);
@@ -53,7 +49,7 @@
 	 */
 	public SWTDynamicContainmentTreeRenderer(DynamicContainmentTree vElement, ViewModelContext viewContext,
 		ReportService reportService) {
-		super(vElement, viewContext, reportService, EMFFORMS_RENDERER_FACTORY, EMFFORMS_DATABINDING);
+		super(vElement, viewContext, reportService, EMFFORMS_RENDERER_FACTORY);
 	}
 
 	/**
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.dynamictree.ui/META-INF/MANIFEST.MF
index c5f08da..91084d5 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Dynamic Tree UI
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.dynamictree.ui;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.dynamictree.ui;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.dynamictree.ui
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.dynamictree.ui/pom.xml b/tests/org.eclipse.emf.ecp.view.dynamictree.ui/pom.xml
index f9a894d..9b5440e 100644
--- a/tests/org.eclipse.emf.ecp.view.dynamictree.ui/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.dynamictree.ui/pom.xml
@@ -7,11 +7,11 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-tests-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>

 	</parent>

 

   <artifactId>org.eclipse.emf.ecp.view.dynamictree.ui</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/1160/Player.view b/tests/org.eclipse.emf.ecp.view.edapt.test/1160/Player.view
new file mode 100644
index 0000000..8bcd543
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/1160/Player.view
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ASCII"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/170" xmlns:org.eclipse.emf.ecp.view.rule.model="http://org/eclipse/emf/ecp/view/rule/model" xmi:id="_krXaMEWAEeWfKJaajyNdyA" ecorePath="/org.eclipse.emf.emfstore.examplemodel/model/bowling.ecore">
+  <rootEClass href="http://org/eclipse/example/bowling#//Player"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_ebmTQGfGEeeL55VBaXqWGQ" name="Control">
+    <attachments xsi:type="org.eclipse.emf.ecp.view.rule.model:ShowRule" xmi:id="_8yucIBPpEemzDuEqO4jNhw" hide="true">
+      <condition xsi:type="org.eclipse.emf.ecp.view.rule.model:LeafCondition" xmi:id="_IuiRYBPrEemzDuEqO4jNhw" expectedValue="ACED0005737200116A6176612E6C616E672E426F6F6C65616ECD207280D59CFAEE0200015A000576616C7565787001" compareType="NOT_EQUALS">
+        <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_JmGykBPrEemzDuEqO4jNhw">
+          <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/example/bowling#//Player/isProfessional"/>
+        </domainModelReference>
+      </condition>
+    </attachments>
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_ebmTQWfGEeeL55VBaXqWGQ">
+      <domainModelEFeature xsi:type="ecore:EReference" href="http://org/eclipse/example/bowling#//Player/name"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.edapt.test/META-INF/MANIFEST.MF
index 3f2a916..8c3990a 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.edapt.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.test._140to1170;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.test._160to1170;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.test.model;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.test.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.test.model.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.edapt.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test._140to1170;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test._160to1170;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test.model;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.test.model.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
 Automatic-Module-Name: org.eclipse.emf.ecp.view.edapt.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/build.properties b/tests/org.eclipse.emf.ecp.view.edapt.test/build.properties
index 3532afb..e6e9b1f 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.test/build.properties
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/build.properties
@@ -11,8 +11,10 @@
                model/,\
                META-INF/,\
                fragment.xml,\
-160/,\
-               plugin.properties
+               160/,\
+               plugin.properties,\
+               140/,\
+               1160/
 jars.compile.order = .
 source.. = src/
 output.. = bin/
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.edapt.test/pom.xml
index 939767a..dbd33fd 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/pom.xml
@@ -6,12 +6,12 @@
 <parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
   </parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.edapt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/AllTests.java
index cd6313b..eadf5f3 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/AllTests.java
@@ -11,6 +11,7 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.edapt.test;
 
+import org.eclipse.emf.ecp.view.edapt.test._1160to1200.All1160to1200Tests;
 import org.eclipse.emf.ecp.view.edapt.test._140to1170.All140to1170Tests;
 import org.eclipse.emf.ecp.view.edapt.test._160to1170.All160to1170Tests;
 import org.junit.runner.RunWith;
@@ -19,7 +20,8 @@
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
 	All140to1170Tests.class,
-	All160to1170Tests.class
+	All160to1170Tests.class,
+	All1160to1200Tests.class
 })
 public class AllTests {
 
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/_1160to1200/All1160to1200Tests.java b/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/_1160to1200/All1160to1200Tests.java
new file mode 100644
index 0000000..69cfc92
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/_1160to1200/All1160to1200Tests.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Johannes Faltermeier - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.edapt.test._1160to1200;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+	CompareTypeMigration_PTest.class
+})
+public class All1160to1200Tests {
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/_1160to1200/CompareTypeMigration_PTest.java b/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/_1160to1200/CompareTypeMigration_PTest.java
new file mode 100644
index 0000000..e95ba3e
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.edapt.test/src/org/eclipse/emf/ecp/view/edapt/test/_1160to1200/CompareTypeMigration_PTest.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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.ecp.view.edapt.test._1160to1200;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import org.eclipse.emf.ecp.view.edapt.test.AbstractMigrationTest;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.rule.model.CompareType;
+import org.eclipse.emf.ecp.view.spi.rule.model.LeafCondition;
+import org.eclipse.emf.ecp.view.spi.rule.model.ShowRule;
+
+public class CompareTypeMigration_PTest extends AbstractMigrationTest {
+
+	@Override
+	// BEGIN SUPRESS CATCH EXCEPTION
+	protected void performTest() throws Exception {// END SUPRESS CATCH EXCEPTION
+		assertFalse(getMigrator().checkMigration(getURI()));
+		getMigrator().performMigration(getURI());
+		final VView view = getMigratedView();
+		final ShowRule rule = (ShowRule) view.getChildren().get(0).getAttachments().get(0);
+		final LeafCondition leafCondition = (LeafCondition) rule.getCondition();
+		assertEquals(CompareType.NOT_EQUALS, leafCondition.getCompareType());
+	}
+
+	@Override
+	protected String getPath() {
+		return "1160/Player.view";
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF
index 0e8242e..20535b5 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/META-INF/MANIFEST.MF
@@ -2,45 +2,45 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.edapt.util.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.edapt;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.19.0",
-  org.eclipse.emf.ecp.view.edapt.util.test.model.a;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.a.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.b;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.b.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.c;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.d;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.d.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.e;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.f;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.w;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.x;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.y;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.z;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.edapt;version="1.20.0",
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.a.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.b.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.c.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.d.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.e.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.f.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.w.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.x.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.y.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.edapt.util.test.model.z.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.junit;bundle-version="[4.0.0,5.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.junit;bundle-version="[4.0.0,5.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.edapt.util.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.view.edapt.util.test/pom.xml b/tests/org.eclipse.emf.ecp.view.edapt.util.test/pom.xml
index 9d2f380..7e7fe9a 100644
--- a/tests/org.eclipse.emf.ecp.view.edapt.util.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.edapt.util.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.edapt.util.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/META-INF/MANIFEST.MF
index 41ef8f3..1c5416a 100644
--- a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the Group SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.group.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.group.ui.swt.test;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.group.ui.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.group.ui.swt.test;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.group.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/pom.xml
index 0f6d592..ba78ffa 100644
--- a/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.group.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.group.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/META-INF/MANIFEST.MF
index 01de212..15a3280 100644
--- a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the Horizontal SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.horizontal.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.horizontal.ui.swt.test;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.jface;bundle-version="3.8.102",
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.horizontal.ui.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.horizontal.ui.swt.test;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.jface;bundle-version="3.8.102",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.horizontal.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/pom.xml
index 4922b60..15d8baf 100644
--- a/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.horizontal.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.horizontal.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/META-INF/MANIFEST.MF
index a1ddabc..813504d 100644
--- a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.indexdmr.model.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.index.test.example;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.index.test.example.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.index.test.example.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.indexdmr.model.test;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.index.test.example;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.index.test.example.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.index.test.example.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.indexdmr.model.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.indexdmr.model.test
diff --git a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/pom.xml b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/pom.xml
index 18187d1..32a75ce 100644
--- a/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.indexdmr.model.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emf.ecp.view.indexdmr.model.test</artifactId>
 	<packaging>eclipse-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/META-INF/MANIFEST.MF
index f56beec..c0ad637 100644
--- a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.keyattributedmr.model.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.keyattribute.test.example;version="1.19.0",
-  org.eclipse.emf.ecp.view.keyattribute.test.example.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.keyattribute.test.example.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.keyattributedmr.model.test;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.keyattribute.test.example;version="1.20.0",
+ org.eclipse.emf.ecp.view.keyattribute.test.example.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.keyattribute.test.example.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.keyattributedmr.model.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.keyattributedmr.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.keyattributedmr.model.test
diff --git a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/pom.xml b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/pom.xml
index a26836d..48e06ae 100644
--- a/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.keyattributedmr.model.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emf.ecp.view.keyattributedmr.model.test</artifactId>
 	<packaging>eclipse-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/META-INF/MANIFEST.MF
index b216b49..152790e 100644
--- a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.mappingdmr.model.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.mapping.test.example;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.mapping.test.example.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.mapping.test.example.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.mappingdmr.model.test;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.mapping.test.example;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.mapping.test.example.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.mapping.test.example.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.mappingdmr.model.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.8.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
-  org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.view.mappingdmr.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.mappingdmr.model.test
diff --git a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/pom.xml b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/pom.xml
index 0ab0e8b..c201875 100644
--- a/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.mappingdmr.model.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emf.ecp.view.mappingdmr.model.test</artifactId>
 	<packaging>eclipse-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.migrator.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.migrator.test/META-INF/MANIFEST.MF
index 2fd11e2..06f735d 100644
--- a/tests/org.eclipse.emf.ecp.view.migrator.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.migrator.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Template Tooling Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.migrator.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.19.0"
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.migrator;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.spi.view.migrator;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.12.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)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.migrator.test
diff --git a/tests/org.eclipse.emf.ecp.view.migrator.test/pom.xml b/tests/org.eclipse.emf.ecp.view.migrator.test/pom.xml
index 2d35769..f1f932d 100644
--- a/tests/org.eclipse.emf.ecp.view.migrator.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.migrator.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.migrator.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.common.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.common.test/META-INF/MANIFEST.MF
index 9f7a506..97d86f0 100644
--- a/tests/org.eclipse.emf.ecp.view.model.common.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Common Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.common.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.19.0"
+Fragment-Host: org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.common;version="1.20.0"
 Require-Bundle: 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.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.common.test
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.model.common.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.common.test/pom.xml
index a1ae254..06a4cf0 100644
--- a/tests/org.eclipse.emf.ecp.view.model.common.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.common.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
diff --git a/tests/org.eclipse.emf.ecp.view.model.edit.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.edit.test/META-INF/MANIFEST.MF
index 41b81d4..c12b131 100644
--- a/tests/org.eclipse.emf.ecp.view.model.edit.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.model.edit.test/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.edit.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.edit.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.edit.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.edit.test
diff --git a/tests/org.eclipse.emf.ecp.view.model.edit.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.edit.test/pom.xml
index ed3c1b2..b59e9bf 100644
--- a/tests/org.eclipse.emf.ecp.view.model.edit.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.edit.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.model.edit.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/feature.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/feature.xml
index 0adfd4d..b846e11 100644
--- a/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/feature.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.ecp.view.model.editor.test.feature"
       label="View Model Editor Test Feature"
-      version="1.19.0.qualifier">
+      version="1.20.0.qualifier">
 
    <description>
       Plugins for testing the View Model Editor with Q7. 
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/pom.xml b/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/pom.xml
index ebf9fd0..9dfc8f0 100644
--- a/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.test.feature/pom.xml
@@ -5,11 +5,11 @@
   <parent>
     <groupId>org.eclipse.emf.ecp</groupId>
     <artifactId>ecp-features-parent</artifactId>
-    <version>1.19.0-SNAPSHOT</version>
+    <version>1.20.0-SNAPSHOT</version>
     <relativePath>../../releng/org.eclipse.emf.ecp.releng.features/</relativePath>
   </parent>
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.model.editor.test.feature</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/META-INF/MANIFEST.MF
index 7956fbf..1d31e3f 100644
--- a/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/META-INF/MANIFEST.MF
@@ -2,8 +2,8 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Editor Test Plugin for Q7
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.editor.testplugin;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
+Require-Bundle: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.editor.testplugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/pom.xml b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/pom.xml
index 1691b86..9fff72b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.editor.testplugin/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.model.editor.testplugin</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.integrationtest/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.integrationtest/META-INF/MANIFEST.MF
index 86681ea..fab6056 100644
--- a/tests/org.eclipse.emf.ecp.view.model.integrationtest/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.model.integrationtest/META-INF/MANIFEST.MF
@@ -2,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Integrationtest
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.integrationtest
-Bundle-Version: 1.19.0.qualifier
-Export-Package: org.eclipse.emf.ecp.view.model.integrationtest;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Export-Package: org.eclipse.emf.ecp.view.model.integrationtest;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.section.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.annotation.model.edit;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.groupedgrid.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.horizontal.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.stack.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.section.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.compoundcontrol.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.custom.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.annotation.model.edit;bundle-version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.integrationtest
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.view.model.integrationtest/pom.xml b/tests/org.eclipse.emf.ecp.view.model.integrationtest/pom.xml
index e7e5fcf..daef5a1 100644
--- a/tests/org.eclipse.emf.ecp.view.model.integrationtest/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.integrationtest/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.model.integrationtest</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java b/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java
index 85d5bff..b12157f 100644
--- a/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.model.integrationtest/src/org/eclipse/emf/ecp/view/model/integrationtest/ChildrenDescriptorExtension_PTest.java
@@ -79,7 +79,7 @@
 	private static final int CATEGORY_CHILD_COUNT = NUMBER_OF_COMPOSITES + ABSTRACTCATEGORIZATION_CHILD_COUNT;
 
 	private static final int CONTROL_CHILD_COUNT = COMPOSITE_CHILD_COUNT + DOMAINMODELREFERENCE_COUNT;
-	private static final int TABLECONTROL_CHILD_COUNT = CONTROL_CHILD_COUNT + 4;
+	private static final int TABLECONTROL_CHILD_COUNT = CONTROL_CHILD_COUNT + 3;
 	private static final int ACTION_CHILD_COUNT = 0;
 	private static final int GROUPEDGRID_CHILD_COUNT = RENDERABLE_CHILD_COUNT + 1;
 	private static final int GRIDEDGROUP_CHILD_COUNT = 1;
diff --git a/tests/org.eclipse.emf.ecp.view.model.preview.common.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.preview.common.test/META-INF/MANIFEST.MF
index 4e78980..9f347ec 100644
--- a/tests/org.eclipse.emf.ecp.view.model.preview.common.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.model.preview.common.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Preview Common Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.preview.common.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.model.preview.common;bundle-version="[1.20.0,1.21.0)"
 Export-Package: org.eclipse.emf.ecp.view.model.preview.common.test;version="0.0.0"
 Require-Bundle: org.eclipse.swt;bundle-version="[3.106.2,4.0.0)",
-  org.junit;bundle-version="[4.12.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)"
+ org.junit;bundle-version="[4.12.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)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.preview.common.test
diff --git a/tests/org.eclipse.emf.ecp.view.model.preview.common.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.preview.common.test/pom.xml
index c78a4b2..4121806 100644
--- a/tests/org.eclipse.emf.ecp.view.model.preview.common.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.preview.common.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.model.preview.common.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.checkstyle b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESMCheckstyleTest" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyleTest" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.classpath b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.classpath
new file mode 100644
index 0000000..3e5654f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src">
+		<attributes>
+			<attribute name="test" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.project b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.project
new file mode 100644
index 0000000..72616ae
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emf.ecp.view.model.provider.generator.test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..7269f8c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,420 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8bc4bb4
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f91e101
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Generator Tests
+Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.provider.generator.test;singleton:=true
+Bundle-Version: 1.20.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.19.0,1.20.1)"
+Automatic-Module-Name: org.eclipse.emf.ecp.view.model.provider.generator.test
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.junit;bundle-version="[4.12.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.ecp.view.model.generator;version="1.20.0"
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/build.properties b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/build.properties
new file mode 100644
index 0000000..34d2e4d
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/pom.xml
new file mode 100644
index 0000000..0dba5ac
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.emf.ecp</groupId>
+		<artifactId>ecp-tests-parent</artifactId>
+		<version>1.20.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<artifactId>org.eclipse.emf.ecp.view.model.provider.generator.test</artifactId>
+	<version>1.20.0-SNAPSHOT</version>
+	<packaging>eclipse-test-plugin</packaging>
+</project>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider_Test.java b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider_Test.java
new file mode 100644
index 0000000..9dfbd21
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.generator.test/src/org/eclipse/emf/ecp/view/model/generator/ViewProvider_Test.java
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2018 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:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.generator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VView;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.model.VViewModelLoadingProperties;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link ViewProvider}.
+ *
+ * @author Lucas Koehler
+ */
+public class ViewProvider_Test {
+
+	private EClass eClass;
+	private EClass refType;
+	private ViewProvider viewProvider;
+	private VViewModelLoadingProperties viewProperties;
+
+	@Before
+	public void setUp() {
+		viewProvider = new ViewProvider();
+		viewProperties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
+
+		eClass = EcoreFactory.eINSTANCE.createEClass();
+		eClass.setName("Test");
+		refType = EcoreFactory.eINSTANCE.createEClass();
+		refType.setName("RefType");
+
+		final EPackage p = EcoreFactory.eINSTANCE.createEPackage();
+		p.setName("p");
+		p.setNsPrefix("p");
+		p.setNsURI("p");
+		p.getEClassifiers().add(eClass);
+		p.getEClassifiers().add(refType);
+	}
+
+	@Test
+	public void provideViewModel_attribute() {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		attribute.setName("attribute");
+		attribute.setEType(EcorePackage.Literals.ESTRING);
+		eClass.getEStructuralFeatures().add(attribute);
+
+		final EObject object = EcoreUtil.create(eClass);
+		final VView view = viewProvider.provideViewModel(object, viewProperties);
+		assertView(view);
+
+		assertTrue(view.getChildren().get(0) instanceof VControl);
+		final VControl control = (VControl) view.getChildren().get(0);
+		assertNotNull(control.getUuid());
+		assertFalse(control.getUuid().isEmpty());
+		final VDomainModelReference dmr = control.getDomainModelReference();
+		assertTrue(dmr instanceof VFeaturePathDomainModelReference);
+		final VFeaturePathDomainModelReference featureDmr = (VFeaturePathDomainModelReference) dmr;
+		assertTrue(featureDmr.getDomainModelEReferencePath().isEmpty());
+		assertSame(attribute, featureDmr.getDomainModelEFeature());
+	}
+
+	@Test
+	public void provideViewModel_singleReference() {
+		final EReference singleRef = EcoreFactory.eINSTANCE.createEReference();
+		singleRef.setName("singleRef");
+		singleRef.setEType(refType);
+		eClass.getEStructuralFeatures().add(singleRef);
+
+		final EObject object = EcoreUtil.create(eClass);
+		final VView view = viewProvider.provideViewModel(object, viewProperties);
+		assertView(view);
+
+		assertTrue(view.getChildren().get(0) instanceof VControl);
+		final VControl control = (VControl) view.getChildren().get(0);
+		assertNotNull(control.getUuid());
+		assertFalse(control.getUuid().isEmpty());
+		final VDomainModelReference dmr = control.getDomainModelReference();
+		assertTrue(dmr instanceof VFeaturePathDomainModelReference);
+		final VFeaturePathDomainModelReference featureDmr = (VFeaturePathDomainModelReference) dmr;
+		assertTrue(featureDmr.getDomainModelEReferencePath().isEmpty());
+		assertSame(singleRef, featureDmr.getDomainModelEFeature());
+	}
+
+	@Test
+	public void provideViewModel_multiCrossReference() {
+		final EReference multiCrossRef = EcoreFactory.eINSTANCE.createEReference();
+		multiCrossRef.setName("multiCrossRef");
+		multiCrossRef.setEType(refType);
+		multiCrossRef.setUpperBound(-1); // multi ref
+		multiCrossRef.setContainment(false);
+		eClass.getEStructuralFeatures().add(multiCrossRef);
+
+		final EObject object = EcoreUtil.create(eClass);
+		final VView view = viewProvider.provideViewModel(object, viewProperties);
+		assertView(view);
+
+		assertTrue(view.getChildren().get(0) instanceof VControl);
+		final VControl control = (VControl) view.getChildren().get(0);
+		assertNotNull(control.getUuid());
+		assertFalse(control.getUuid().isEmpty());
+		final VDomainModelReference dmr = control.getDomainModelReference();
+		assertTrue(dmr instanceof VFeaturePathDomainModelReference);
+		final VFeaturePathDomainModelReference featureDmr = (VFeaturePathDomainModelReference) dmr;
+		assertTrue(featureDmr.getDomainModelEReferencePath().isEmpty());
+		assertSame(multiCrossRef, featureDmr.getDomainModelEFeature());
+	}
+
+	/** Verify that the generator generates a table control for multi containment refs. */
+	@Test
+	public void provideViewModel_multiContainmentReference() {
+		final EReference multiContainmentRef = EcoreFactory.eINSTANCE.createEReference();
+		multiContainmentRef.setName("multiContainmentRef");
+		multiContainmentRef.setEType(refType);
+		multiContainmentRef.setUpperBound(-1); // multi ref
+		multiContainmentRef.setContainment(true);
+		eClass.getEStructuralFeatures().add(multiContainmentRef);
+
+		final EObject object = EcoreUtil.create(eClass);
+		final VView view = viewProvider.provideViewModel(object, viewProperties);
+		assertView(view);
+
+		assertTrue(view.getChildren().get(0) instanceof VTableControl);
+		final VTableControl control = (VTableControl) view.getChildren().get(0);
+		assertNotNull(control.getUuid());
+		assertFalse(control.getUuid().isEmpty());
+		final VDomainModelReference controlDmr = control.getDomainModelReference();
+		assertTrue(controlDmr instanceof VTableDomainModelReference);
+		final VTableDomainModelReference tableDmr = (VTableDomainModelReference) controlDmr;
+		assertTrue(tableDmr.getDomainModelEReferencePath().isEmpty());
+		assertNull(tableDmr.getDomainModelEFeature());
+
+		assertTrue(tableDmr.getDomainModelReference() instanceof VFeaturePathDomainModelReference);
+		final VFeaturePathDomainModelReference featureDmr = (VFeaturePathDomainModelReference) tableDmr
+			.getDomainModelReference();
+
+		assertSame(multiContainmentRef, featureDmr.getDomainModelEFeature());
+	}
+
+	private void assertView(final VView view) {
+		assertNotNull(view);
+		assertNotNull(view.getUuid());
+		assertFalse(view.getUuid().isEmpty());
+		assertEquals(1, view.getChildren().size());
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.classpath b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.classpath
index 64c5e31..4f83b23 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.classpath
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.jdt.core.prefs
index edbd6f6..7269f8c 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/.settings/org.eclipse.jdt.core.prefs
@@ -25,9 +25,10 @@
 org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -130,7 +131,8 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/META-INF/MANIFEST.MF
index 114df0b..97cb925 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ECP XMI Provider Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.provider.xmi.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.provider.xmi;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.model.provider.xmi.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.provider.xmi;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.model.provider.xmi.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
-  org.junit;bundle-version="4.0.0",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+ org.junit;bundle-version="4.0.0",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.provider.xmi.test
diff --git a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/pom.xml
index 5925f69..727e3fc 100644
--- a/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.provider.xmi.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.model.provider.xmi.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/.project b/tests/org.eclipse.emf.ecp.view.model.test/.project
index 3829862..75e4400 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/.project
+++ b/tests/org.eclipse.emf.ecp.view.model.test/.project
@@ -20,9 +20,15 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 	</natures>
 </projectDescription>
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/AllTests ecp.view.model.launch b/tests/org.eclipse.emf.ecp.view.model.test/AllTests ecp.view.model.launch
index d35c78a..0333b02 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/AllTests ecp.view.model.launch
+++ b/tests/org.eclipse.emf.ecp.view.model.test/AllTests ecp.view.model.launch
@@ -1,15 +1,19 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">

-<listEntry value="/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/AllTests.java"/>

-</listAttribute>

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">

-<listEntry value="1"/>

-</listAttribute>

-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>

-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>

-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>

-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>

-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.model.test.AllTests"/>

-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.ecp.view.model.test"/>

-</launchConfiguration>

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.eclemma.core.SCOPE_IDS">
+<listEntry value="=org.eclipse.emf.ecp.view.model/src"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.model.test.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.ecp.view.model.test"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.model.test/META-INF/MANIFEST.MF
index 4a3bcd5..c7ef13e 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.model.test/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Model Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.model.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.model.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.model;version="1.19.0"
+Fragment-Host: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.model.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.model;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.objenesis;bundle-version="1.0.0"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.objenesis;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.model.test
-Import-Package: org.eclipse.emf.ecp.view.spi.group.model;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emf.ecp.view.spi.group.model;version="[1.20.0,1.21.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/pom.xml b/tests/org.eclipse.emf.ecp.view.model.test/pom.xml
index 5c855d3..96cf633 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.model.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/AllTests.java
index c26a7ca..2851bf5 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2017 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,7 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
- * Christian W. Damus - bug 527826
+ * Christian W. Damus - bugs 527826, 543160
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.test;
 
@@ -29,6 +29,7 @@
 	DiagnosticMessageExtractor_Test.class,
 	DefaultViewModelProperties_Test.class,
 	VElement_Test.class,
+	VDiagnostic_Test.class,
 })
 public class AllTests {
 	// JUnit 4 Test Suite
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/DomainModelReference_Test.java b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/DomainModelReference_Test.java
index 8a6a648..e56b26b 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/DomainModelReference_Test.java
+++ b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/DomainModelReference_Test.java
@@ -1,3 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2014-2019 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:
+ * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543160
+ ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.test;
 
 import static org.junit.Assert.assertEquals;
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/FeaturePathDMRValidation_Test.java b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/FeaturePathDMRValidation_Test.java
index 5f7f1f8..0593dbf 100644
--- a/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/FeaturePathDMRValidation_Test.java
+++ b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/FeaturePathDMRValidation_Test.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * jfaltermeier - initial API and implementation
+ * Christian W. Damus - Bug 543160
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.model.test;
 
@@ -99,7 +100,8 @@
 	}
 
 	private DiagnosticInfo controlDMRWarning() {
-		return new DiagnosticInfo(Diagnostic.WARNING, control, VViewPackage.eINSTANCE.getControl_DomainModelReference());
+		return new DiagnosticInfo(Diagnostic.WARNING, control,
+			VViewPackage.eINSTANCE.getControl_DomainModelReference());
 	}
 
 	private DiagnosticInfo featurePathEFeature() {
@@ -273,7 +275,7 @@
 		private final EObject object;
 		private final EStructuralFeature feature;
 
-		public DiagnosticInfo(int severity, EObject object, EStructuralFeature feature) {
+		DiagnosticInfo(int severity, EObject object, EStructuralFeature feature) {
 			this.severity = severity;
 			this.object = object;
 			this.feature = feature;
diff --git a/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/VDiagnostic_Test.java b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/VDiagnostic_Test.java
new file mode 100644
index 0000000..f217cb7
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.model.test/src/org/eclipse/emf/ecp/view/model/test/VDiagnostic_Test.java
@@ -0,0 +1,377 @@
+/*******************************************************************************
+ * Copyright (c) 2019 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:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.model.test;
+
+import static java.util.Collections.emptyList;
+import static org.hamcrest.CoreMatchers.both;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Stream;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.model.impl.VDiagnosticImpl;
+import org.eclipse.emf.emfstore.bowling.BowlingFactory;
+import org.eclipse.emf.emfstore.bowling.BowlingPackage;
+import org.eclipse.emf.emfstore.bowling.Gender;
+import org.eclipse.emf.emfstore.bowling.League;
+import org.eclipse.emf.emfstore.bowling.Player;
+import org.hamcrest.CoreMatchers;
+import org.hamcrest.Description;
+import org.hamcrest.FeatureMatcher;
+import org.hamcrest.Matcher;
+import org.hamcrest.TypeSafeMatcher;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test cases for the custom code in the {@link VDiagnosticImpl} class.
+ */
+public class VDiagnostic_Test {
+
+	private static final EStructuralFeature NAME = BowlingPackage.Literals.PLAYER__NAME;
+	private static final EStructuralFeature DOB = BowlingPackage.Literals.PLAYER__DATE_OF_BIRTH;
+	private static final EStructuralFeature PLAYERS = BowlingPackage.Literals.LEAGUE__PLAYERS;
+
+	private final VDiagnostic fixture = VViewFactory.eINSTANCE.createDiagnostic();
+
+	private League league;
+	private Player alice;
+	private Player brenda;
+	private Player cathy;
+
+	/**
+	 * Test uniqueness of the diagnostic list.
+	 */
+	@Test
+	public void getDiagnostics() {
+		final List<Object> diagnostics = fixture.getDiagnostics();
+
+		assertThat(diagnostics.size(), is(0));
+		diagnostics.add(warning(alice, NAME, "first"));
+		diagnostics.add(ok(brenda, NAME, "brenda"));
+
+		assertThat(diagnostics.size(), is(2));
+
+		assertThat(diagnostics.add(warning(cathy, NAME, "second")), is(true));
+		assertThat(diagnostics.add(warning(cathy, NAME, "second")), is(false));
+
+		diagnostics.addAll(Arrays.asList(
+			warning(alice, NAME, "first"), // dupe
+			warning(alice, NAME, "second"), // new
+			ok(brenda, NAME, "brenda"), // dupe
+			error(brenda, NAME, "brenda"), // new
+			warning(cathy, DOB, "second") // new
+		));
+
+		assertThat(diagnostics.size(), is(6));
+
+		assertThat(diagnostics, hasItems(
+			warning(alice, NAME, "first"),
+			ok(brenda, NAME, "brenda"),
+			warning(cathy, NAME, "second"),
+			warning(alice, NAME, "second"),
+			error(brenda, NAME, "brenda"),
+			warning(cathy, DOB, "second")));
+	}
+
+	/**
+	 * Test severity query.
+	 *
+	 * @see VDiagnostic#getHighestSeverity()
+	 */
+	@Test
+	public void getHighestSeverity() {
+		final List<Object> diagnostics = fixture.getDiagnostics();
+
+		assertThat(fixture.getHighestSeverity(), is(Diagnostic.OK));
+
+		diagnostics.add(ok(brenda, NAME, "first"));
+		assertThat(fixture.getHighestSeverity(), is(Diagnostic.OK));
+
+		diagnostics.add(warning(alice, NAME, "first"));
+		assertThat(fixture.getHighestSeverity(), is(Diagnostic.WARNING));
+
+		diagnostics.add(error(cathy, NAME, "first"));
+		assertThat(fixture.getHighestSeverity(), is(Diagnostic.ERROR));
+
+		diagnostics.remove(2);
+		assertThat(fixture.getHighestSeverity(), is(Diagnostic.WARNING));
+	}
+
+	/**
+	 * Test message query.
+	 *
+	 * @see VDiagnostic#getMessage()
+	 */
+	@Test
+	public void getMessage() {
+		final List<Object> diagnostics = fixture.getDiagnostics();
+
+		assertThat(fixture.getMessage(), is(""));
+
+		diagnostics.add(ok(brenda, NAME, "first"));
+		assertThat(fixture.getMessage(), is(""));
+
+		diagnostics.add(warning(alice, NAME, "second"));
+		assertThat(fixture.getMessage(), is("second"));
+
+		diagnostics.add(error(cathy, NAME, "third"));
+		assertThat(fixture.getMessage(), is("third\nsecond")); // Severity order
+	}
+
+	/**
+	 * Test mappings of diagnostics {@linkplain VDiagnostic#getDiagnostics(EObject) by object}.
+	 *
+	 * @see VDiagnostic#getDiagnostics(EObject)
+	 */
+	@Test
+	public void getDiagnostics_EObject() {
+		final List<Object> diagnostics = fixture.getDiagnostics();
+
+		assertThat(fixture.getDiagnostics(alice), is(emptyList()));
+		assertThat(fixture.getDiagnostics(league), is(emptyList()));
+
+		// OKs are filtered out
+		diagnostics.add(ok(alice, NAME, "first"));
+		assertThat(fixture.getDiagnostics(alice), is(emptyList()));
+		assertThat(fixture.getDiagnostics(league), is(emptyList()));
+
+		diagnostics.add(warning(alice, DOB, "second"));
+		diagnostics.add(error(alice, NAME, "third"));
+		assertThat(fixture.getDiagnostics(alice), hasInOrder(
+			error(alice, NAME, "third"), warning(alice, DOB, "second")));
+		assertThat(fixture.getDiagnostics(league), hasInOrder(
+			error(alice, NAME, "third"), warning(alice, DOB, "second")));
+
+		diagnostics.add(warning(cathy, DOB, "third"));
+		assertThat(fixture.getDiagnostics(alice), hasInOrder(
+			error(alice, NAME, "third"), warning(alice, DOB, "second")));
+		assertThat(fixture.getDiagnostics(alice), not(hasItem(isAbout(cathy))));
+		assertThat(fixture.getDiagnostics(cathy), hasItem(warning(cathy, DOB, "third")));
+		assertThat(fixture.getDiagnostics(cathy), not(hasItem(isAbout(alice))));
+		assertThat(fixture.getDiagnostics(league), hasInOrder(
+			// Warnings are alphabetical by message
+			error(alice, NAME, "third"), warning(alice, DOB, "second"), warning(cathy, DOB, "third")));
+
+		diagnostics.add(error(league, PLAYERS, "too few"));
+		assertThat(fixture.getDiagnostics(league), hasItem(isAbout(league)));
+		assertThat(fixture.getDiagnostics(alice), not(hasItem(isAbout(league))));
+		assertThat(fixture.getDiagnostics(cathy), not(hasItem(isAbout(league))));
+
+		// Now remove the error(alice, NAME, "third")
+		diagnostics.remove(2);
+		assertThat(fixture.getDiagnostics(alice), not(hasItem(error(alice, NAME, "third"))));
+		assertThat(fixture.getDiagnostics(league), not(hasItem(error(alice, NAME, "third"))));
+
+		// And replace warning(alice, DOB, "second")
+		diagnostics.set(1, error(brenda, NAME, "new"));
+		assertThat(fixture.getDiagnostics(alice), not(hasItem(warning(alice, DOB, "second"))));
+		assertThat(fixture.getDiagnostics(league), both(hasItem(error(brenda, NAME, "new"))).and(
+			not(hasItem(warning(alice, DOB, "second")))));
+	}
+
+	/**
+	 * Test mappings of diagnostics {@linkplain VDiagnostic#getDiagnostics(EObject) by object and feature}.
+	 *
+	 * @see VDiagnostic#getDiagnostic(EObject, EStructuralFeature)
+	 */
+	@Test
+	public void getDiagnostic_EObject_EStructuralFeature() {
+		final List<Object> diagnostics = fixture.getDiagnostics();
+
+		assertThat(fixture.getDiagnostic(cathy, NAME), is(emptyList()));
+		assertThat(fixture.getDiagnostic(league, NAME), is(emptyList()));
+
+		// OKs are filtered out
+		diagnostics.add(ok(cathy, NAME, "first"));
+		assertThat(fixture.getDiagnostic(cathy, NAME), is(emptyList()));
+		assertThat(fixture.getDiagnostic(league, NAME), is(emptyList()));
+
+		diagnostics.add(warning(cathy, NAME, "second"));
+		diagnostics.add(error(cathy, DOB, "third"));
+		assertThat(fixture.getDiagnostic(cathy, NAME), hasItem(
+			warning(cathy, NAME, "second")));
+		assertThat(fixture.getDiagnostic(cathy, NAME), not(hasItem(hasFeature(DOB))));
+		assertThat(fixture.getDiagnostic(league, NAME), hasItem(
+			warning(cathy, NAME, "second")));
+		assertThat(fixture.getDiagnostic(league, NAME), not(hasItem(hasFeature(DOB))));
+
+		diagnostics.add(error(cathy, NAME, "third"));
+		assertThat(fixture.getDiagnostic(cathy, NAME), hasInOrder(
+			error(cathy, NAME, "third"), warning(cathy, NAME, "second")));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Before
+	public void createModel() {
+		league = BowlingFactory.eINSTANCE.createLeague();
+		league.setName("Bantam A");
+
+		alice = player("Alice");
+		brenda = player("Brenda");
+		cathy = player("Cathy");
+	}
+
+	private Player player(String name) {
+		final Player result = BowlingFactory.eINSTANCE.createPlayer();
+		result.setName(name);
+		result.setGender(Gender.FEMALE);
+		result.setDateOfBirth(
+			java.util.Date.from(LocalDate.now().minusYears(23).atStartOfDay(ZoneId.systemDefault()).toInstant()));
+		league.getPlayers().add(result);
+		return result;
+	}
+
+	Diagnostic error(EObject subject, EStructuralFeature feature, String message) {
+		return problem(Diagnostic.ERROR, subject, feature, message);
+	}
+
+	Diagnostic warning(EObject subject, EStructuralFeature feature, String message) {
+		return problem(Diagnostic.WARNING, subject, feature, message);
+	}
+
+	Diagnostic ok(EObject subject, EStructuralFeature feature, String message) {
+		return problem(Diagnostic.OK, subject, feature, message);
+	}
+
+	Diagnostic problem(int severity, EObject subject, EStructuralFeature feature, String message) {
+		return new BasicDiagnostic(severity, "source", 0, message, new Object[] { subject, feature }) {
+			// Implement equals() and hashcode() for convenience of testing uniqueness constraints
+
+			@Override
+			public int hashCode() {
+				return Objects.hash(getSeverity(), getSource(), getMessage(), getData());
+			}
+
+			@Override
+			public boolean equals(Object obj) {
+				if (obj == null || obj.getClass() != getClass()) {
+					return false;
+				}
+				final Diagnostic other = (Diagnostic) obj;
+				return getSeverity() == other.getSeverity()
+					&& Objects.equals(getSource(), other.getSource())
+					&& Objects.equals(getMessage(), other.getMessage())
+					&& Objects.equals(getData(), other.getData());
+			}
+		};
+	}
+
+	static Matcher<Diagnostic> isAbout(Matcher<? super EObject> subjectMatcher) {
+		return new FeatureMatcher<Diagnostic, EObject>(subjectMatcher, "data[0] as EObject", "subject") {
+			@Override
+			protected EObject featureValueOf(Diagnostic actual) {
+				final List<?> data = actual.getData();
+				return data.isEmpty() || !(data.get(0) instanceof EObject)
+					? null
+					: (EObject) data.get(0);
+			}
+		};
+	}
+
+	static Matcher<Diagnostic> isAbout(EObject subject) {
+		return isAbout(is(subject));
+	}
+
+	static Matcher<Diagnostic> hasFeature(Matcher<? super EStructuralFeature> featureMatcher) {
+		return new FeatureMatcher<Diagnostic, EStructuralFeature>(featureMatcher, "data[1] as EStructuralFeature",
+			"feature") {
+			@Override
+			protected EStructuralFeature featureValueOf(Diagnostic actual) {
+				final List<?> data = actual.getData();
+				return data.size() < 2 || !(data.get(1) instanceof EStructuralFeature)
+					? null
+					: (EStructuralFeature) data.get(1);
+			}
+		};
+	}
+
+	static Matcher<Diagnostic> hasFeature(EStructuralFeature feature) {
+		return hasFeature(is(feature));
+	}
+
+	@SafeVarargs
+	static <T> Matcher<Iterable<T>> hasInOrder(Matcher<? super T>... matchers) {
+		return new InOrderMatcher<>(matchers);
+	}
+
+	private static final class InOrderMatcher<T> extends TypeSafeMatcher<Iterable<T>> {
+		private final List<Matcher<? super T>> matchers;
+
+		@SafeVarargs
+		InOrderMatcher(Matcher<? super T>... matchers) {
+			super();
+
+			this.matchers = Arrays.asList(matchers);
+		}
+
+		@Override
+		public void describeTo(Description description) {
+			description.appendText("matches in order ");
+			matchers.forEach(description::appendDescriptionOf);
+		}
+
+		@Override
+		protected boolean matchesSafely(Iterable<T> item) {
+			boolean result = true;
+			final Iterator<T> iter = item.iterator();
+			final Iterator<Matcher<? super T>> mIter = matchers.iterator();
+			Matcher<? super T> m = null;
+
+			while (iter.hasNext()) {
+				if (m == null) {
+					if (!mIter.hasNext()) {
+						break; // All matched
+					}
+					m = mIter.next();
+				}
+
+				final T next = iter.next();
+				if (m.matches(next)) {
+					// Match the next
+					m = null;
+				}
+			}
+
+			if (mIter.hasNext()) {
+				// Not all matched
+				result = false;
+			}
+
+			return result;
+		}
+	}
+
+	@SuppressWarnings("unchecked")
+	static <T> Matcher<Iterable<T>> hasInOrder(T... items) {
+		return hasInOrder(Stream.of(items).map(CoreMatchers::is).toArray(Matcher[]::new));
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.rule.test/META-INF/MANIFEST.MF
index 608551a..7afe06e 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/META-INF/MANIFEST.MF
@@ -2,32 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.rule.test;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.rule.test;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.validation;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.indexdmr.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.validation;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.rule.test
-Import-Package: org.eclipse.emf.ecp.view.spi.validation;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emf.ecp.view.spi.validation;version="[1.20.0,1.21.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.rule.test/pom.xml b/tests/org.eclipse.emf.ecp.view.rule.test/pom.xml
index 1b527e8..1934758 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.rule.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.rule.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/META-INF/MANIFEST.MF
index de3d674..977757a 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Rule Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.rule.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.rule;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.rule.ui.swt.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.rule;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.rule.ui.swt.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="4.11.0",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.rule.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/pom.xml
index b3731a4..5734e15 100644
--- a/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.rule.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.rule.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/META-INF/MANIFEST.MF
index 91241ca..f76618d 100644
--- a/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for Section SWT Renderers
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.section.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.section.ui.swt;bundle-version="[1.19.0,1.20.0)"
-Automatic-Module-Name: org.eclipse.emf.ecp.view.section.ui.swt.test
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Fragment-Host: org.eclipse.emf.ecp.view.section.ui.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.section.swt;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.0,2.0.0)",
  org.objenesis;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.section.swt;version="1.19.0"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emf.ecp.view.section.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/pom.xml
index 9acc8b8..70d739d 100644
--- a/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.section.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.section.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/META-INF/MANIFEST.MF
index c0c5b1b..d65a8c0 100644
--- a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Stack Model SWT Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.stack.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.stack.ui.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.stack.ui.swt.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.stack.ui.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.stack.ui.swt.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)"
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.stack.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/pom.xml
index a22c81f..aa98d97 100644
--- a/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.stack.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.stack.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.table.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.table.model.test/META-INF/MANIFEST.MF
index 7eab96f..e187b24 100644
--- a/tests/org.eclipse.emf.ecp.view.table.model.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.table.model.test/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Model Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.model.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.table.model.util;version="1.19.0",
-  org.eclipse.emf.ecp.view.table.model.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.table.model.util;version="1.20.0",
+ org.eclipse.emf.ecp.view.table.model.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
diff --git a/tests/org.eclipse.emf.ecp.view.table.model.test/pom.xml b/tests/org.eclipse.emf.ecp.view.table.model.test/pom.xml
index 8b8db79..3ccaf00 100644
--- a/tests/org.eclipse.emf.ecp.view.table.model.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.table.model.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emf.ecp.view.table.model.test</artifactId>
 	<packaging>eclipse-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.table.test.common/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.table.test.common/META-INF/MANIFEST.MF
index 4da0339..4672009 100644
--- a/tests/org.eclipse.emf.ecp.view.table.test.common/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.table.test.common/META-INF/MANIFEST.MF
@@ -2,10 +2,10 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Utils for Table Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.test.common
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.table.test.common;version="1.19.0"
-Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)"
+Export-Package: org.eclipse.emf.ecp.view.table.test.common;version="1.20.0"
+Require-Bundle: org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.test.common
diff --git a/tests/org.eclipse.emf.ecp.view.table.test.common/pom.xml b/tests/org.eclipse.emf.ecp.view.table.test.common/pom.xml
index 1b912d0..ecd826f 100644
--- a/tests/org.eclipse.emf.ecp.view.table.test.common/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.table.test.common/pom.xml
@@ -7,12 +7,12 @@
   <parent>

     <groupId>org.eclipse.emf.ecp</groupId>

     <artifactId>ecp-tests-parent</artifactId>

-    <version>1.19.0-SNAPSHOT</version>

+    <version>1.20.0-SNAPSHOT</version>

     <relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>

   </parent>

 

   <groupId>org.eclipse.emf.ecp</groupId>

   <artifactId>org.eclipse.emf.ecp.view.table.test.common</artifactId>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

   <packaging>eclipse-plugin</packaging>

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridControlRenderer_PTest.launch b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridControlRenderer_PTest.launch
index 50b4d52..1e1a29c 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridControlRenderer_PTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridControlRenderer_PTest.launch
@@ -33,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.css*1.8.0.v20170214-1941@default:default,org.apache.batik.util*1.8.0.v20170214-1941@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.scr@default:default,org.apache.log4j@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.beans*1.3.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.property*1.6.100.v20170515-1119@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.nebula.widgets.grid@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.xtext.logging@default:false,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.ui.nebula.grid@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.keyattribute@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.keyattribute@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.keyattribute@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.scr@1:true,org.apache.log4j@default:default,org.apache.xmlgraphics@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.100.v20181030-1443@default:default,org.eclipse.core.databinding.beans*1.4.300.v20181030-1443@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.nebula.widgets.grid@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.xtext.logging@default:false,org.hamcrest.core*1.3.0.v201303031735@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.nebula.grid.test@default:false,org.eclipse.emf.ecp.view.table.ui.nebula.grid@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.keyattribute@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.keyattribute@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.segments.featurepath@default:default,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.keyattribute@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridTable_PTest.launch b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridTable_PTest.launch
index 0dd544d..60f5df1 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridTable_PTest.launch
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/GridTable_PTest.launch
@@ -33,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.css*1.8.0.v20170214-1941@default:default,org.apache.batik.util*1.8.0.v20170214-1941@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.scr@default:default,org.apache.log4j@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.beans*1.3.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.property*1.6.100.v20170515-1119@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.nebula.widgets.grid@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.xtext.logging@default:false,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.nebula.grid.test@default:false,org.eclipse.emf.ecp.view.table.ui.nebula.grid@default:default,org.eclipse.emf.ecp.view.table.ui.swt.test@default:false,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.keyattribute@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.keyattribute@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.keyattribute@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.scr@1:true,org.apache.log4j@default:default,org.apache.xmlgraphics@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.100.v20181030-1443@default:default,org.eclipse.core.databinding.beans*1.3.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.nebula.widgets.grid@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.junit@default:false,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.xtext.logging@default:false,org.hamcrest.core*1.3.0.v201303031735@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.swt.di@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.view.categorization.model.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.keyattributedmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.di@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.nebula.grid.test@default:false,org.eclipse.emf.ecp.view.table.ui.nebula.grid@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt@default:default,org.eclipse.emf.ecp.view.treemasterdetail.validation@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.keyattribute@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.keyattribute@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table.panel@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.keyattribute@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.setup.base@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di.tests@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/META-INF/MANIFEST.MF
index 495d9ce..fe78c24 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/META-INF/MANIFEST.MF
@@ -2,35 +2,36 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.nebula.grid.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.nebula.grid;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.internal.table.nebula.grid;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.19.0",
-  org.eclipse.emf.ecp.view.table.ui.nebula.grid.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.util;version="1.19.0";x-internal:=true
-Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.common.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding.beans;bundle-version="1.3.0",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.6.0,2.0.0)",
-  org.eclipse.nebula.widgets.grid;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)";visibility:=reexport,
-  org.objenesis;bundle-version="[1.0.0,2.0.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.nebula.grid;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.nebula.grid;version="1.20.0",
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.ui.nebula.grid.test.model.audit.util;version="1.20.0";x-internal:=true
+Require-Bundle: org.hamcrest.library;bundle-version="[1.3.0,2.0.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.common.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding.beans;bundle-version="1.3.0",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.nebula.widgets.grid;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.13.0,3.0.0)";visibility:=reexport,
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.nebula.grid.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/pom.xml b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/pom.xml
index 42b0c8a..51dfc89 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridControlRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridControlRenderer_PTest.java
index d064255..7fd775e 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridControlRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridControlRenderer_PTest.java
@@ -32,6 +32,7 @@
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.databinding.IEMFValueProperty;
 import org.eclipse.emf.databinding.internal.EMFValueProperty;
 import org.eclipse.emf.databinding.internal.EMFValuePropertyDecorator;
 import org.eclipse.emf.ecore.EClass;
@@ -234,6 +235,13 @@
 			.thenReturn(
 				mockedObservableValue);
 
+		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
+		when(structuralFeature.isChangeable()).thenReturn(true);
+		final IEMFValueProperty valueProperty = mock(IEMFValueProperty.class);
+		when(valueProperty.getValueType()).thenReturn(structuralFeature);
+		when(getDatabindingService().getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+			valueProperty);
+
 		when(getvControl().getColumnConfigurations())
 			.thenReturn(new BasicEList<VTableColumnConfiguration>());
 
@@ -521,6 +529,10 @@
 		columnConfiguration.matchFilter().setValue("foo");
 		assertEquals(0, filterVisible(grid.getItems()).length);
 
+		// double check, that extending a filter which lead to an empty result still created an empty result
+		columnConfiguration.matchFilter().setValue("foo2");
+		assertEquals(0, filterVisible(grid.getItems()).length);
+
 		columnConfiguration.matchFilter().resetToDefault();
 		assertEquals(expectedRows, filterVisible(grid.getItems()).length);
 
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridTable_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridTable_PTest.java
index d89ec96..aed1551 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridTable_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridTable_PTest.java
@@ -12,6 +12,9 @@
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.internal.table.nebula.grid;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.lessThan;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
@@ -19,14 +22,13 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 import java.util.Arrays;
 import java.util.Set;
 
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
@@ -382,7 +384,7 @@
 		final ScrolledComposite scrolledComposite = (ScrolledComposite) sash.getChildren()[1];
 		final Composite parentForECPView = (Composite) scrolledComposite.getChildren()[0];
 		assertEquals(2, table.getItemCount());
-		final GridTableViewer tableViewer = getTableViewerFromRenderer(tableRenderer);
+		final GridTableViewer tableViewer = GridTestsUtil.getTableViewerFromRenderer(tableRenderer);
 
 		// no initial selection
 		assertEquals(0, parentForECPView.getChildren().length);
@@ -437,7 +439,7 @@
 			fail("No control was rendered");
 		}
 		final Grid table = SWTTestUtil.findControl(control, 0, Grid.class);
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
 
 		// column 0 is validation column
 
@@ -445,29 +447,29 @@
 		// up
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
 		// down
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class2, class1);
+		assertGridItemOrder(table, class3, class2, class1);
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
 
 		// select column 2
 		// up
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class1, class2);
+		assertGridItemOrder(table, class3, class1, class2);
 		// down
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class2, class1, class3);
+		assertGridItemOrder(table, class2, class1, class3);
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
 	}
 
 	@Test
@@ -498,7 +500,7 @@
 			fail("No control was rendered");
 		}
 		final Grid table = SWTTestUtil.findControl(control, 0, Grid.class);
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
 
 		// column 0 is validation column
 
@@ -506,29 +508,85 @@
 		// up
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class2, class1);
+		assertGridItemOrder(table, class3, class2, class1);
 		// down
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
 
 		// select column 2
 		// up
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class1, class2);
+		assertGridItemOrder(table, class3, class1, class2);
 		// down
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class2, class1, class3);
+		assertGridItemOrder(table, class2, class1, class3);
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertGridItemOrder(table, class1, class2, class3);
+	}
+
+	@Test
+	public void gridSorting_autoSortOnEdit()
+		throws EMFFormsNoRendererException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		// domain
+		((EClass) domainElement).getEStructuralFeatures().clear();
+		final EAttribute attribute1 = createEAttribute("a", EcorePackage.Literals.ESTRING, 0, 2);
+		final EAttribute attribute2 = createEAttribute("b", EcorePackage.Literals.ESTRING, 0, 11);
+		final EAttribute attribute3 = createEAttribute("c", EcorePackage.Literals.ESTRING, 0, 1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute2);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute3);
+
+		// table control
+		final VTableControl tableControl = TableTestUtil.createTableControl();
+		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
+		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_EAttributes());
+		tableDMR.getColumnDomainModelReferences().add(createDMR(EcorePackage.eINSTANCE.getENamedElement_Name()));
+		tableDMR.getColumnDomainModelReferences().add(
+			createDMR(EcorePackage.eINSTANCE.getETypedElement_UpperBound()));
+
+		// render
+		shell.open();
+		// With this shell size, the table will be 77 pixels high and show 2 rows
+		shell.setSize(200, 150);
+		final Control control = SWTViewTestHelper.render(tableControl, domainElement, shell);
+		if (control == null) {
+			fail("No control was rendered");
+		}
+		shell.layout();
+		final Grid grid = SWTTestUtil.findControl(control, 0, Grid.class);
+
+		// column 0 is validation column
+		// select column 1 (name) and ascending sorting
+		SWTTestUtil.selectWidget(grid.getColumns()[1]);
+		SWTTestUtil.waitForUIThread();
+		assertGridItemOrder(grid, attribute1, attribute2, attribute3);
+
+		// Change the attribute the sorting is currently applied on and assert that the table was automatically
+		// re-sorted
+		attribute1.setName("z");
+		SWTTestUtil.waitForUIThread();
+		assertGridItemOrder(grid, attribute2, attribute3, attribute1);
+
+		final GridItem sortItem = grid.getItem(2);
+		final int itemLowerEnd = sortItem.getBounds(1).y + sortItem.getBounds(1).height;
+		// Assert that the edited grid item was revealed after it had been moved to the end of the grid.
+		assertThat(
+			"The edited grid item is not fully visible after the auto sort because the grid didn't scroll down.",
+			itemLowerEnd, lessThan(grid.getBounds().height));
+		assertThat(
+			"The edited grid item is not fully visible after the auto sort because the grid is scrolled too far down.",
+			sortItem.getBounds(1).y, greaterThan(grid.getHeaderHeight()));
+
+		shell.close();
 	}
 
 	private GridControlSWTRenderer createRendererInstanceWithCustomCellEditor(final VTableControl tableControl)
@@ -560,7 +618,7 @@
 		return tableControlSWTRenderer;
 	}
 
-	private static void assertTableItemOrder(Grid table, Object... objects) {
+	private static void assertGridItemOrder(Grid table, Object... objects) {
 		assertEquals(objects.length, table.getItemCount());
 		final GridItem[] items = table.getItems();
 		for (int i = 0; i < items.length; i++) {
@@ -575,6 +633,15 @@
 		return clazz;
 	}
 
+	private static EAttribute createEAttribute(String name, EClassifier classifier, int lowerBound, int upperBound) {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		attribute.setName(name);
+		attribute.setEType(classifier);
+		attribute.setLowerBound(lowerBound);
+		attribute.setUpperBound(upperBound);
+		return attribute;
+	}
+
 	private static VFeaturePathDomainModelReference createDMR(EAttribute attribute, EReference... refs) {
 		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
 		dmr.setDomainModelEFeature(attribute);
@@ -621,25 +688,6 @@
 		return tableControlHandle;
 	}
 
-	private GridTableViewer getTableViewerFromRenderer(AbstractSWTRenderer<VElement> renderer) {
-		try {
-			final Method method = TableControlSWTRenderer.class.getDeclaredMethod("getTableViewer");
-			method.setAccessible(true);
-			return (GridTableViewer) method.invoke(renderer);
-		} catch (final NoSuchMethodException ex) {
-			fail(ex.getMessage());
-		} catch (final SecurityException ex) {
-			fail(ex.getMessage());
-		} catch (final IllegalAccessException ex) {
-			fail(ex.getMessage());
-		} catch (final IllegalArgumentException ex) {
-			fail(ex.getMessage());
-		} catch (final InvocationTargetException ex) {
-			fail(ex.getMessage());
-		}
-		return null;
-	}
-
 	/**
 	 * Stub implementation without getting services from ex. point.
 	 *
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridTestsUtil.java b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridTestsUtil.java
new file mode 100644
index 0000000..1399dbf
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/internal/table/nebula/grid/GridTestsUtil.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.internal.table.nebula.grid;
+
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
+
+/**
+ * Util for Grid Tests.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public final class GridTestsUtil {
+
+	private GridTestsUtil() {
+	}
+
+	public static GridTableViewer getTableViewerFromRenderer(AbstractSWTRenderer<VElement> renderer) {
+		try {
+			final Method method = TableControlSWTRenderer.class.getDeclaredMethod("getTableViewer");
+			method.setAccessible(true);
+			return (GridTableViewer) method.invoke(renderer);
+		} catch (final NoSuchMethodException ex) {
+			fail(ex.getMessage());
+		} catch (final SecurityException ex) {
+			fail(ex.getMessage());
+		} catch (final IllegalAccessException ex) {
+			fail(ex.getMessage());
+		} catch (final IllegalArgumentException ex) {
+			fail(ex.getMessage());
+		} catch (final InvocationTargetException ex) {
+			fail(ex.getMessage());
+		}
+		return null;
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer_PTest.java
index c59c1a4..68fbb7f 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.nebula.grid.test/src/org/eclipse/emf/ecp/view/spi/table/nebula/grid/GridControlDetailPanelRenderer_PTest.java
@@ -30,7 +30,7 @@
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.internal.table.nebula.grid.GridTestsUtil;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.model.VView;
@@ -43,7 +43,10 @@
 import org.eclipse.emf.ecp.view.table.test.common.TableControlHandle;
 import org.eclipse.emf.ecp.view.table.test.common.TableTestUtil;
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper.RendererResult;
 import org.eclipse.emfforms.spi.common.converter.EStructuralFeatureValueConverterService;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
@@ -51,9 +54,12 @@
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
 import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.nebula.jface.gridviewer.GridTableViewer;
 import org.eclipse.nebula.widgets.grid.Grid;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
@@ -62,6 +68,7 @@
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 
 /**
  * Unit tests for the {@link GridControlDetailPanelRenderer}.
@@ -69,13 +76,13 @@
  * @author Lucas Koehler
  *
  */
+@RunWith(DatabindingClassRunner.class)
 public class GridControlDetailPanelRenderer_PTest {
 
 	private static String log;
 	private static PrintStream systemErr;
 	private Shell shell;
 	private EObject domainElement;
-	private DefaultRealm realm;
 
 	@BeforeClass
 	public static void beforeClass() {
@@ -90,7 +97,6 @@
 
 	@Before
 	public void init() {
-		realm = new DefaultRealm();
 		log = "";
 		shell = SWTViewTestHelper.createShell();
 
@@ -101,7 +107,6 @@
 
 	@After
 	public void after() {
-		realm.dispose();
 		shell.dispose();
 		if (!log.isEmpty()) {
 			fail("Unexpected log to System.err: " + log);
@@ -136,6 +141,44 @@
 		getChild(sashForm, Composite.class, 1);
 	}
 
+	/**
+	 * Tests that a horizontal and vertical scrollbar appears if the detail is to small.
+	 */
+	@Test
+	public void testScroll() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
+		shell.setSize(100, 200);
+		shell.open();
+		SWTTestUtil.waitForUIThread();
+		// setup model
+		final TableControlHandle handle = TableTestUtil.createInitializedTableWithoutTableColumns();
+		handle.getTableControl().setDetailEditing(DetailEditing.WITH_PANEL);
+		//
+		final RendererResult renderControl = SWTViewTestHelper.renderControl(handle.getTableControl(), domainElement,
+			shell);
+		shell.layout();
+		SWTTestUtil.waitForUIThread();
+		final GridTableViewer tableViewer = GridTestsUtil.getTableViewerFromRenderer(renderControl.getRenderer());
+		final Control render = renderControl.getControl().get();
+		assertTrue(render instanceof Composite);
+		final Composite border = getChild(getChild(render, Composite.class, 0), Composite.class, 1);
+		assertEquals("The grid and detail should be surrounded by a common border", SWT.BORDER,
+			border.getStyle() & SWT.BORDER);
+		final SashForm sashForm = getChild(border, SashForm.class, 0);
+		tableViewer.setSelection(new StructuredSelection(tableViewer.getElementAt(0)));
+		final ScrolledComposite scrolledComposite = getChild(sashForm, ScrolledComposite.class, 1);
+		assertFalse(scrolledComposite.getAlwaysShowScrollBars());
+		assertTrue(scrolledComposite.getHorizontalBar().isVisible());
+		assertTrue(scrolledComposite.getVerticalBar().isVisible());
+
+		// modify shell to force no scroll
+		shell.setSize(1000, 1000);
+		assertFalse(scrolledComposite.getHorizontalBar().isVisible());
+		assertFalse(scrolledComposite.getVerticalBar().isVisible());
+
+		shell.close();
+	}
+
 	@Test
 	public void testGetView() {
 		final GridControlDetailPanelRenderer renderer = new GridControlDetailPanelRenderer(mock(VTableControl.class),
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/All Tests for view.table.ui.swt.launch b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/All Tests for view.table.ui.swt.launch
index 9069564..a5f0b03 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/All Tests for view.table.ui.swt.launch
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/All Tests for view.table.ui.swt.launch
@@ -24,7 +24,8 @@
 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.ecp.view.table.ui.swt.test.AllTests"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.ecp.view.table.ui.swt.test"/>
@@ -32,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.scr@1:true,org.apache.xmlgraphics@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.0.v20180827-2028@default:default,org.eclipse.core.databinding.beans*1.4.200.v20180827-2028@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core*1.3.0.v201303031735@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.test@default:false,org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.test@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.view.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt.tests@default:false,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.test@default:false,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi.test@default:false,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model.nl_de@default:false,org.eclipse.emf.ecp.view.table.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.swt.test@default:false,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model.test@default:false,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation.test@default:false,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation.tests@default:false,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar.tests@default:false,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default.tests@default:false,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf.tests@default:false,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy.tests@default:false,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table.panel@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services.tests@default:false,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization.tests@default:false,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.tests@default:false,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.scr@1:true,org.apache.xmlgraphics@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.100.v20181030-1443@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core*1.3.0.v201303031735@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.test@default:false,org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.test@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.view.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt.tests@default:false,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.test@default:false,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi.test@default:false,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model.nl_de@default:false,org.eclipse.emf.ecp.view.table.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.swt.test@default:false,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model.test@default:false,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation.test@default:false,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation.tests@default:false,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar.tests@default:false,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default.tests@default:false,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf.tests@default:false,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy.tests@default:false,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table.panel@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.segments.featurepath@default:default,org.eclipse.emfforms.core.services.segments.multi@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services.tests@default:false,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization.tests@default:false,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.tests@default:false,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/META-INF/MANIFEST.MF
index 2b70fe8..c8fd79a 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,48 +2,50 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the Table SWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.internal.table.swt.cell;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.spi.table.swt;version="1.19.0",
-  org.eclipse.emf.ecp.view.table.ui.swt.test;version="1.19.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test"
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.columnservice;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.equinox.registry;bundle-version="[3.5.400,4.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.common;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.200,2.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.11.1,3.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)",
-  org.hamcrest.library;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.table.swt.cell;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.spi.table.swt;version="1.20.0",
+ org.eclipse.emf.ecp.view.table.ui.swt.test;version="1.20.0";x-friends:="org.eclipse.emf.ecp.view.ui.editor.test"
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.columnservice;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.equinox.registry;bundle-version="[3.5.400,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.common;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.200,2.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.11.1,3.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)",
+ org.hamcrest.library;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emfforms.core.services.segments.multi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.common.report;version="[1.20.0,1.21.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/pom.xml
index 7d5672d..51f195d 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.table.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTableDatabindingLabel_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTableDatabindingLabel_PTest.java
index 22e3099..1a464f0 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTableDatabindingLabel_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTableDatabindingLabel_PTest.java
@@ -136,8 +136,12 @@
 		vTableControl = VTableFactory.eINSTANCE.createTableControl();
 		vTableControl.setDomainModelReference(tableDomainModelReference);
 
-		final IValueProperty valueProperty = new EMFValueProperty(EcorePackage.eINSTANCE.getEClass_ESuperTypes());
+		final IValueProperty delegate = new EMFValueProperty(EcorePackage.eINSTANCE.getEClass_ESuperTypes());
+		final EMFValuePropertyDecorator valueProperty = new EMFValuePropertyDecorator(delegate,
+			EcorePackage.eINSTANCE.getEClass_ESuperTypes());
 		final IObservableValue observableValue = valueProperty.observe(domainModel);
+		when(databindingService.getValueProperty(vTableControl.getDomainModelReference(), (EObject) domainModel))
+			.thenReturn(valueProperty);
 		when(databindingService.getObservableValue(vTableControl.getDomainModelReference(), domainModel)).thenReturn(
 			observableValue);
 
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTable_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTable_PTest.java
index 412ec52..6e6a2f7 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTable_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/SWTTable_PTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2017 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,11 +8,15 @@
  *
  * Contributors:
  * Johannes Faltermeier
- * Christian W. Damus - bug 527740
+ * Christian W. Damus - bugs 527740, 544116
  *
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.hamcrest.Matchers.lessThan;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
@@ -28,21 +32,27 @@
 import java.io.PrintStream;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Hashtable;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import javax.inject.Inject;
 
+import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.emf.common.command.BasicCommandStack;
 import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
@@ -65,8 +75,10 @@
 import org.eclipse.emf.ecp.view.spi.context.ViewModelServiceProvider;
 import org.eclipse.emf.ecp.view.spi.model.ModelChangeListener;
 import org.eclipse.emf.ecp.view.spi.model.VControl;
+import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;
 import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emf.ecp.view.spi.model.VFeatureDomainModelReferenceSegment;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
@@ -79,6 +91,8 @@
 import org.eclipse.emf.ecp.view.spi.table.model.VTableFactory;
 import org.eclipse.emf.ecp.view.spi.table.swt.action.AddRowAction;
 import org.eclipse.emf.ecp.view.spi.table.swt.action.DuplicateRowAction;
+import org.eclipse.emf.ecp.view.spi.table.swt.action.MoveRowDownAction;
+import org.eclipse.emf.ecp.view.spi.table.swt.action.MoveRowUpAction;
 import org.eclipse.emf.ecp.view.spi.table.swt.action.RemoveRowAction;
 import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
 import org.eclipse.emf.ecp.view.table.test.common.TableControlHandle;
@@ -108,9 +122,13 @@
 import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
+import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentFactory;
 import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.CellLabelProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
@@ -186,6 +204,9 @@
 			fail("Unexpected log to System.err: " + log);
 		}
 		adapterFactory.dispose();
+		if (shell != null && !shell.isDisposed()) {
+			shell.dispose();
+		}
 	}
 
 	@Test
@@ -471,21 +492,21 @@
 	public void testTableSorting() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
 		EMFFormsNoRendererException {
 		// domain
-		((EClass) domainElement).getESuperTypes().clear();
-		final EClass class1 = createEClass("a", "b");
-		final EClass class2 = createEClass("b", "c");
-		final EClass class3 = createEClass("c", "a");
-		((EClass) domainElement).getESuperTypes().add(class1);
-		((EClass) domainElement).getESuperTypes().add(class2);
-		((EClass) domainElement).getESuperTypes().add(class3);
+		((EClass) domainElement).getEStructuralFeatures().clear();
+		final EAttribute attribute1 = createEAttribute("a2", EcorePackage.Literals.ESTRING, 0, 2);
+		final EAttribute attribute2 = createEAttribute("a10", EcorePackage.Literals.ESTRING, 0, 11);
+		final EAttribute attribute3 = createEAttribute("a10b", EcorePackage.Literals.ESTRING, 0, 1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute2);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute3);
 
 		// table control
 		final VTableControl tableControl = TableTestUtil.createTableControl();
 		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
-		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_ESuperTypes());
+		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_EAttributes());
 		tableDMR.getColumnDomainModelReferences().add(createDMR(EcorePackage.eINSTANCE.getENamedElement_Name()));
 		tableDMR.getColumnDomainModelReferences().add(
-			createDMR(EcorePackage.eINSTANCE.getEClassifier_InstanceClassName()));
+			createDMR(EcorePackage.eINSTANCE.getETypedElement_UpperBound()));
 
 		// render
 		final AbstractSWTRenderer<VElement> tableRenderer = rendererFactory.getRendererInstance(tableControl,
@@ -496,58 +517,64 @@
 			fail("No control was rendered");
 		}
 		final Table table = SWTTestUtil.findControl(control, 0, Table.class);
-		assertTableItemOrder(table, class1, class2, class3);
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
 
 		// column 0 is validation column
 
 		// select column 1
-		// up
+		// ascending
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
-		// down
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
+		assertEquals(SWT.DOWN, table.getSortDirection()); // SWT.DOWN := ascending sorting
+		// descending
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class2, class1);
+		assertTableItemOrder(table, attribute3, attribute2, attribute1);
+		assertEquals(SWT.UP, table.getSortDirection()); // SWT.UP := descending sorting
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
+		assertEquals(SWT.NONE, table.getSortDirection());
 
 		// select column 2
-		// up
+		// ascending
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class1, class2);
-		// down
+		assertTableItemOrder(table, attribute3, attribute1, attribute2);
+		assertEquals(SWT.DOWN, table.getSortDirection()); // SWT.DOWN := ascending sorting
+		// descending
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class2, class1, class3);
+		assertTableItemOrder(table, attribute2, attribute1, attribute3);
+		assertEquals(SWT.UP, table.getSortDirection()); // SWT.UP := descending sorting
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
+		assertEquals(SWT.NONE, table.getSortDirection());
 	}
 
 	@Test
 	public void testTableSortingWithCellEditor() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
 		EMFFormsNoRendererException {
 		// domain
-		((EClass) domainElement).getESuperTypes().clear();
-		final EClass class1 = createEClass("a", "b");
-		final EClass class2 = createEClass("b", "c");
-		final EClass class3 = createEClass("c", "a");
-		((EClass) domainElement).getESuperTypes().add(class1);
-		((EClass) domainElement).getESuperTypes().add(class2);
-		((EClass) domainElement).getESuperTypes().add(class3);
+		((EClass) domainElement).getEStructuralFeatures().clear();
+		final EAttribute attribute1 = createEAttribute("a", EcorePackage.Literals.ESTRING, 0, 2);
+		final EAttribute attribute2 = createEAttribute("b", EcorePackage.Literals.ESTRING, 0, 11);
+		final EAttribute attribute3 = createEAttribute("c", EcorePackage.Literals.ESTRING, 0, 1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute2);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute3);
 
 		// table control
 		final VTableControl tableControl = TableTestUtil.createTableControl();
 		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
-		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_ESuperTypes());
+		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_EAttributes());
 		tableDMR.getColumnDomainModelReferences().add(createDMR(EcorePackage.eINSTANCE.getENamedElement_Name()));
 		tableDMR.getColumnDomainModelReferences().add(
-			createDMR(EcorePackage.eINSTANCE.getEClassifier_InstanceClassName()));
+			createDMR(EcorePackage.eINSTANCE.getETypedElement_UpperBound()));
 
 		// render
 		final TableControlSWTRenderer tableRenderer = createRendererInstanceWithCustomCellEditor(tableControl);
@@ -557,37 +584,101 @@
 			fail("No control was rendered");
 		}
 		final Table table = SWTTestUtil.findControl(control, 0, Table.class);
-		assertTableItemOrder(table, class1, class2, class3);
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
 
 		// column 0 is validation column
 
-		// select column 1
-		// up
+		// select column 1; for this the sort orders are inverted due to the custom cell editor
+		// ascending configured -> results in descending sorting
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class2, class1);
-		// down
+		assertTableItemOrder(table, attribute3, attribute2, attribute1);
+		assertEquals(SWT.DOWN, table.getSortDirection()); // SWT.DOWN := ascending sorting
+		// descending configured -> results in ascending sorting
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
+		assertEquals(SWT.UP, table.getSortDirection()); // SWT.UP := descending sorting
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[1]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
+		assertEquals(SWT.NONE, table.getSortDirection());
 
-		// select column 2
-		// up
+		// select column 2; no custom cell editor registered => should sort normally
+		// ascending
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class3, class1, class2);
-		// down
+		assertTableItemOrder(table, attribute3, attribute1, attribute2);
+		assertEquals(SWT.DOWN, table.getSortDirection()); // SWT.DOWN := ascending sorting
+		// descending
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class2, class1, class3);
+		assertTableItemOrder(table, attribute2, attribute1, attribute3);
+		assertEquals(SWT.UP, table.getSortDirection()); // SWT.UP := descending sorting
 		// none
 		SWTTestUtil.selectWidget(table.getColumns()[2]);
 		SWTTestUtil.waitForUIThread();
-		assertTableItemOrder(table, class1, class2, class3);
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
+		assertEquals(SWT.NONE, table.getSortDirection());
+	}
+
+	@Test
+	public void tableSorting_autoSortOnEdit()
+		throws EMFFormsNoRendererException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+		// domain
+		((EClass) domainElement).getEStructuralFeatures().clear();
+		final EAttribute attribute1 = createEAttribute("a", EcorePackage.Literals.ESTRING, 0, 2);
+		final EAttribute attribute2 = createEAttribute("b", EcorePackage.Literals.ESTRING, 0, 11);
+		final EAttribute attribute3 = createEAttribute("c", EcorePackage.Literals.ESTRING, 0, 1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute2);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute3);
+
+		// table control
+		final VTableControl tableControl = TableTestUtil.createTableControl();
+		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
+		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_EAttributes());
+		tableDMR.getColumnDomainModelReferences().add(createDMR(EcorePackage.eINSTANCE.getENamedElement_Name()));
+		tableDMR.getColumnDomainModelReferences().add(
+			createDMR(EcorePackage.eINSTANCE.getETypedElement_UpperBound()));
+
+		// render
+		shell.open();
+		// With this shell size, the table will be 77 pixels high and show 2 rows
+		shell.setSize(200, 150);
+		final Control control = SWTViewTestHelper.render(tableControl, domainElement, shell);
+		if (control == null) {
+			fail("No control was rendered");
+		}
+		shell.layout();
+		final Table table = SWTTestUtil.findControl(control, 0, Table.class);
+
+		// column 0 is validation column
+		// select column 1 (name) and ascending sorting
+		SWTTestUtil.selectWidget(table.getColumns()[1]);
+		SWTTestUtil.waitForUIThread();
+		assertTableItemOrder(table, attribute1, attribute2, attribute3);
+		assertEquals(SWT.DOWN, table.getSortDirection()); // SWT.DOWN := ascending sorting
+
+		// Change the attribute the sorting is currently applied on and assert that the table was automatically
+		// re-sorted
+		attribute1.setName("z");
+		SWTTestUtil.waitForUIThread();
+		assertTableItemOrder(table, attribute2, attribute3, attribute1);
+
+		final TableItem sortItem = table.getItem(2);
+		// Calculate the lower item bound relative to the table. We need to add the header height because the y
+		// coordinates of the table items start at the lower end of the header but the header height is included in the
+		// table height.
+		final int itemLowerEnd = sortItem.getBounds().y + sortItem.getBounds().height + table.getHeaderHeight();
+		// Assert that the edited table item was revealed after it had been moved to the end of the table.
+		assertThat(
+			"The edited table item is not fully visible after the auto sort because the table didn't scroll down.",
+			itemLowerEnd, lessThan(table.getBounds().height));
+		assertThat(
+			"The edited table item is not fully visible after the auto sort because the table is scrolled too far down.",
+			sortItem.getBounds().y, greaterThanOrEqualTo(0));
 	}
 
 	@Test
@@ -614,6 +705,50 @@
 	}
 
 	@Test
+	public void testTable_unchangeableFeature_doNotRenderButtons()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
+		// setup model, we need a feature that is unchangeable
+		final VTableControl tableControl = VTableFactory.eINSTANCE.createTableControl();
+		final VTableDomainModelReference tableDmr = VTableFactory.eINSTANCE.createTableDomainModelReference();
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
+			.createMultiDomainModelReferenceSegment();
+		segment.setDomainModelFeature("eReferences");
+		dmr.getSegments().add(segment);
+		tableDmr.setDomainModelReference(dmr);
+		final VFeaturePathDomainModelReference columnDmr = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		final VFeatureDomainModelReferenceSegment columnSegment = VViewFactory.eINSTANCE
+			.createFeatureDomainModelReferenceSegment();
+		columnDmr.getSegments().add(columnSegment);
+		segment.getChildDomainModelReferences().add(columnDmr);
+		tableControl.setDomainModelReference(tableDmr);
+		tableControl.setDuplicateDisabled(false);
+		tableControl.setMoveUpDownDisabled(false);
+		tableControl.setAddRemoveDisabled(false);
+
+		shell.open();
+		final RendererResult result = SWTViewTestHelper.renderControl(tableControl, domainElement, shell);
+		assertTrue(result.getControl().isPresent() && result.getControl().get() instanceof Composite);
+
+		final TableControlSWTRenderer swtRenderer = TableControlSWTRenderer.class.cast(result.getRenderer());
+
+		final Optional<Control> addRowButton = swtRenderer.getControlForAction(AddRowAction.ACTION_ID);
+		final Optional<Control> removeRowButton = swtRenderer.getControlForAction(RemoveRowAction.ACTION_ID);
+		final Optional<Control> duplicateRowButton = swtRenderer.getControlForAction(DuplicateRowAction.ACTION_ID);
+		final Optional<Control> moveRowUpButton = swtRenderer.getControlForAction(MoveRowUpAction.ACTION_ID);
+		final Optional<Control> moveRowDownButton = swtRenderer.getControlForAction(MoveRowDownAction.ACTION_ID);
+
+		// If the feature is unchangeable, the buttons that allow to change the feature must not be rendered
+		assertFalse(addRowButton.isPresent());
+		assertFalse(removeRowButton.isPresent());
+		assertFalse(duplicateRowButton.isPresent());
+		assertFalse(moveRowUpButton.isPresent());
+		assertFalse(moveRowDownButton.isPresent());
+	}
+
+	@Test
 	public void testTable_AddRow_WithTableService() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
 		EMFFormsNoRendererException {
 		// setup model
@@ -890,6 +1025,99 @@
 		assertEquals("The tool tip text should be empty.", "", validationIcon.getToolTipText());
 	}
 
+	/**
+	 * Test that on validation status changes the table renderer does not update the entire
+	 * table but only the rows that have validation changes.
+	 *
+	 * @see <a href="http://eclip.se/544116">bug 544116</a>
+	 */
+	@Test
+	public void testValidationUpdates() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
+		EMFFormsNoRendererException {
+
+		// domain
+		((EClass) domainElement).getEStructuralFeatures().clear();
+		final EAttribute attribute1 = createEAttribute("a", EcorePackage.Literals.ESTRING, 0, 2);
+		final EAttribute attribute2 = createEAttribute("b", EcorePackage.Literals.ESTRING, 0, 11);
+		final EAttribute attribute3 = createEAttribute("c", EcorePackage.Literals.ESTRING, 0, 1);
+		final EAttribute attribute4 = createEAttribute("d", EcorePackage.Literals.ESTRING, 0, 1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute1);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute2);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute3);
+		((EClass) domainElement).getEStructuralFeatures().add(attribute4);
+
+		// table control
+		final VTableControl tableControl = TableTestUtil.createTableControl();
+		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
+		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_EAttributes());
+		tableDMR.getColumnDomainModelReferences().add(createDMR(EcorePackage.eINSTANCE.getENamedElement_Name()));
+		tableDMR.getColumnDomainModelReferences().add(
+			createDMR(EcorePackage.eINSTANCE.getETypedElement_UpperBound()));
+
+		// render
+		final ViewModelContext context = new ViewModelContextImpl(tableControl, domainElement);
+		final List<String> requestedCells = new ArrayList<>();
+		final TableControlSWTRenderer tableRenderer = new TableControlSWTRenderer(tableControl, context,
+			context.getService(ReportService.class),
+			context.getService(EMFFormsDatabindingEMF.class),
+			context.getService(EMFFormsLabelProvider.class),
+			context.getService(VTViewTemplateProvider.class),
+			context.getService(ImageRegistryService.class),
+			context.getService(EMFFormsEditSupport.class)) {
+
+			@Override
+			protected CellLabelProvider createCellLabelProvider(EStructuralFeature feature, CellEditor cellEditor,
+				@SuppressWarnings("rawtypes") IObservableMap attributeMap, VTableControl vTableControl,
+				VDomainModelReference dmr,
+				Control table) {
+
+				if (feature == EcorePackage.Literals.ENAMED_ELEMENT__NAME) {
+					final StringCellEditor editor = new StringCellEditor() {
+						@Override
+						public String getFormatedString(Object value) {
+							requestedCells.add((String) value);
+							return super.getFormatedString(value);
+						}
+					};
+					cellEditor = editor;
+				}
+				return super.createCellLabelProvider(feature, cellEditor, attributeMap, vTableControl, dmr, table);
+			}
+		};
+		tableRenderer.init();
+		tableRenderer.getGridDescription(new SWTGridDescription());
+		final Control control = tableRenderer.render(new SWTGridCell(0, 0, tableRenderer), shell);
+		if (control == null) {
+			fail("No control was rendered");
+		}
+		tableRenderer.finalizeRendering(shell);
+
+		// Initialize the validation status
+		VDiagnostic vdiag = VViewFactory.eINSTANCE.createDiagnostic();
+		Diagnostic diag = new BasicDiagnostic(Diagnostic.ERROR, "source", 0, "error",
+			new Object[] { attribute2, EcorePackage.Literals.ETYPED_ELEMENT__ETYPE });
+		vdiag.getDiagnostics().add(diag);
+		tableControl.setDiagnostic(vdiag);
+
+		SWTTestUtil.waitForUIThread();
+
+		// Reset our tracking of accessed cells
+		requestedCells.clear();
+
+		// Update the validation results
+		vdiag = VViewFactory.eINSTANCE.createDiagnostic();
+		diag = new BasicDiagnostic(Diagnostic.ERROR, "source", 0, "error",
+			// A different object than the initial validation status
+			new Object[] { attribute3, EcorePackage.Literals.ETYPED_ELEMENT__ETYPE });
+		vdiag.getDiagnostics().add(diag);
+		tableControl.setDiagnostic(vdiag);
+
+		SWTTestUtil.waitForUIThread();
+
+		// Notably, we updated these two rows in order and *neither* "a" nor "d"
+		assertThat(requestedCells, equalTo(Arrays.asList("b", "c")));
+	}
+
 	@Test
 	public void testTable_validationColumnImage()
 		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
@@ -1000,6 +1228,15 @@
 		return clazz;
 	}
 
+	private static EAttribute createEAttribute(String name, EClassifier classifier, int lowerBound, int upperBound) {
+		final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+		attribute.setName(name);
+		attribute.setEType(classifier);
+		attribute.setLowerBound(lowerBound);
+		attribute.setUpperBound(upperBound);
+		return attribute;
+	}
+
 	private static VFeaturePathDomainModelReference createDMR(EAttribute attribute, EReference... refs) {
 		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
 		dmr.setDomainModelEFeature(attribute);
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer_PTest.java
index 9d897b2..8acb1ae 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlDetailPanelRenderer_PTest.java
@@ -11,30 +11,48 @@
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.text.MessageFormat;
+
 import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emf.ecp.view.spi.table.model.DetailEditing;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
 import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
+import org.eclipse.emf.ecp.view.table.test.common.TableControlHandle;
+import org.eclipse.emf.ecp.view.table.test.common.TableTestUtil;
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
 import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper.RendererResult;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.emf.EMFFormsDatabindingEMF;
 import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 import org.junit.After;
 import org.junit.Before;
@@ -51,10 +69,15 @@
 public class TableControlDetailPanelRenderer_PTest {
 
 	private Shell shell;
+	private EObject domainElement;
 
 	@Before
 	public void setUp() {
 		shell = SWTViewTestHelper.createShell();
+
+		final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
+		eClass.getESuperTypes().add(EcorePackage.eINSTANCE.getEClass());
+		domainElement = eClass;
 	}
 
 	@After
@@ -246,6 +269,42 @@
 		assertTrue(detailView.isReadonly());
 	}
 
+	/**
+	 * Tests that a horizontal and vertical scrollbar appears if the detail is to small.
+	 */
+	@Test
+	public void testScroll() throws NoRendererFoundException,
+		NoPropertyDescriptorFoundExeption, EMFFormsNoRendererException {
+		shell.open();
+		// the height is needed as the scrolledcomposite is not visible otherwise
+		shell.setSize(100, 350);
+		// setup model
+		final TableControlHandle handle = TableTestUtil.createInitializedTableWithoutTableColumns();
+		handle.getTableControl().setDetailEditing(DetailEditing.WITH_PANEL);
+		//
+		final RendererResult renderControl = SWTViewTestHelper.renderControl(handle.getTableControl(), domainElement,
+			shell);
+		shell.layout();
+		final TableViewer tableViewer = TableRendererTestUtil.getTableViewerFromRenderer(renderControl.getRenderer());
+		final Control render = renderControl.getControl().get();
+		assertTrue(render instanceof Composite);
+		final Composite border = getChild(getChild(render, Composite.class, 0), Composite.class, 1);
+		assertEquals("The table and detail should be surrounded by a common border", SWT.BORDER,
+			border.getStyle() & SWT.BORDER);
+		tableViewer.setSelection(new StructuredSelection(tableViewer.getElementAt(0)));
+		final ScrolledComposite scrolledComposite = getChild(border, ScrolledComposite.class, 1);
+		assertFalse(scrolledComposite.getAlwaysShowScrollBars());
+		assertTrue(scrolledComposite.getHorizontalBar().isVisible());
+		assertTrue(scrolledComposite.getVerticalBar().isVisible());
+
+		// modify shell to force no scroll
+		shell.setSize(1000, 1000);
+		assertFalse(scrolledComposite.getHorizontalBar().isVisible());
+		assertFalse(scrolledComposite.getVerticalBar().isVisible());
+
+		shell.close();
+	}
+
 	private ViewModelContext mockViewModelContext(final VView detailView, final EObject domainObject) {
 		final ViewModelContext context = mock(ViewModelContext.class);
 		final ViewModelContext childContext = mock(ViewModelContext.class);
@@ -256,4 +315,14 @@
 			.thenReturn(childContext);
 		return context;
 	}
+
+	private <T> T getChild(Control parent, Class<T> type, int index) {
+		assertTrue(MessageFormat.format("The Control {0} is not a composite => No children can be retrieved", parent),
+			parent instanceof Composite);
+		final Composite composite = (Composite) parent;
+		final Control child = composite.getChildren()[index];
+		assertTrue(MessageFormat.format("Child {0} is not of required type {1}", child, type.getName()),
+			type.isInstance(child));
+		return type.cast(child);
+	}
 }
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRendererPerformance_PTest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRendererPerformance_PTest.java
new file mode 100644
index 0000000..14c9ac1
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRendererPerformance_PTest.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.util.Arrays;
+import java.util.Random;
+import java.util.function.Consumer;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecp.test.common.PerformanceClock;
+import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
+import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
+import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
+import org.eclipse.emf.ecp.view.table.test.common.TableTestUtil;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.DatabindingClassRunner;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTViewTestHelper;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsNoRendererException;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Performance tests for the {@link TableControlSWTRenderer}.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@RunWith(DatabindingClassRunner.class)
+public class TableControlSWTRendererPerformance_PTest {
+
+	private static final int SMALL_SCALE = 50;
+	private static final int LARGE_SCALE = 2000;
+	// sorting takes O(n*log n)
+	private static final int ITERATIONS = 8;
+	private static final double WORST_CASE_MULTIPLIER = 20.0;
+
+	private Shell shell;
+	private ComposedAdapterFactory adapterFactory;
+	private Resource smallResource;
+	private Resource largeResource;
+
+	@Before
+	public void init() {
+		shell = SWTViewTestHelper.createShell();
+
+		// Add domain element to resource with editing domain
+		final ResourceSetImpl rs = new ResourceSetImpl();
+		adapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
+			new ReflectiveItemProviderAdapterFactory(),
+			new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE) });
+		final AdapterFactoryEditingDomain editingDomain = new AdapterFactoryEditingDomain(
+			adapterFactory, new BasicCommandStack(), rs);
+		rs.eAdapters().add(new AdapterFactoryEditingDomain.EditingDomainProvider(editingDomain));
+		smallResource = rs.createResource(URI.createURI("VIRTUAL_SMALL"));
+		largeResource = rs.createResource(URI.createURI("VIRTUAL_BIG"));
+	}
+
+	@After
+	public void after() {
+		adapterFactory.dispose();
+		if (shell != null && !shell.isDisposed()) {
+			shell.dispose();
+		}
+	}
+
+	@Test
+	public void tableSorting_autoSortOnEdit()
+		throws EMFFormsNoRendererException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+		// table control
+		final VTableControl tableControl = TableTestUtil.createTableControl();
+		final VTableDomainModelReference tableDMR = (VTableDomainModelReference) tableControl.getDomainModelReference();
+		tableDMR.setDomainModelEFeature(EcorePackage.eINSTANCE.getEClass_EAttributes());
+		tableDMR.getColumnDomainModelReferences().add(createDMR(EcorePackage.eINSTANCE.getENamedElement_Name()));
+
+		// render
+		shell.open();
+
+		test(domain -> {
+			Control control = null;
+			try {
+				control = SWTViewTestHelper.render(tableControl, domain, shell);
+			} catch (NoRendererFoundException | NoPropertyDescriptorFoundExeption | EMFFormsNoRendererException ex) {
+				fail("An exception occurred while rendering the table: " + ex.getMessage());
+			}
+			if (control == null) {
+				fail("No control was rendered");
+			}
+			final Table table = SWTTestUtil.findControl(control, 0, Table.class);
+
+			// column 0 is validation column
+			// select column 1 (name) and ascending sorting
+			SWTTestUtil.selectWidget(table.getColumns()[1]);
+			SWTTestUtil.waitForUIThread();
+			assertEquals(SWT.DOWN, table.getSortDirection()); // SWT.DOWN := ascending sorting
+
+			final EAttribute start = (EAttribute) table.getItem(0).getData();
+			start.setName("zzz");
+
+			final EAttribute middle = (EAttribute) table.getItem(table.getItemCount() / 2).getData();
+			middle.setName("aaa");
+		});
+	}
+
+	private void test(Consumer<EClass> experiment) {
+		final EClass smallInput = generateInput(SMALL_SCALE);
+		smallResource.getContents().clear();
+		smallResource.getContents().add(smallInput);
+		final EClass largeInput = generateInput(LARGE_SCALE);
+		largeResource.getContents().clear();
+		largeResource.getContents().add(largeInput);
+		PerformanceClock.test(ITERATIONS, WORST_CASE_MULTIPLIER, () -> smallInput, () -> largeInput, experiment);
+	}
+
+	private static EClass generateInput(int childCount) {
+		final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
+		final Random random = new Random(System.nanoTime());
+		final int nameLength = 10;
+		for (int i = 0; i < childCount; i++) {
+			final char[] result = new char[nameLength];
+			for (int j = 0; j < nameLength; j++) {
+				result[j] = (char) (random.nextInt('z' - 'A') + 'A');
+			}
+			final EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+			attribute.setEType(EcorePackage.Literals.ESTRING);
+			attribute.setName(new String(result));
+			eClass.getEStructuralFeatures().add(attribute);
+		}
+		return eClass;
+	}
+
+	private static VFeaturePathDomainModelReference createDMR(EAttribute attribute, EReference... refs) {
+		final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		dmr.setDomainModelEFeature(attribute);
+		dmr.getDomainModelEReferencePath().addAll(Arrays.asList(refs));
+		return dmr;
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer_ITest.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer_ITest.java
index 5c4d13e..5159b49 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer_ITest.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableControlSWTRenderer_ITest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * remi - initial API and implementation
+ * Christian W. Damus - add test for null inputs to applyValidation(...)
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.spi.table.swt;
 
@@ -16,13 +17,24 @@
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doCallRealMethod;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import java.lang.reflect.Field;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
 
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.util.ECollections;
 import org.eclipse.emf.databinding.EMFObservables;
 import org.eclipse.emf.databinding.EMFProperties;
 import org.eclipse.emf.databinding.EObjectObservableValue;
@@ -38,10 +50,13 @@
 import org.eclipse.emf.ecp.view.model.common.AbstractRenderer;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
+import org.eclipse.emf.ecp.view.spi.model.VDiagnostic;
 import org.eclipse.emf.ecp.view.spi.model.VElement;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
+import org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer.ECPTableEditingSupport;
+import org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer.ECPTableEditingSupport.EditingState;
 import org.eclipse.emf.ecp.view.spi.util.swt.ImageRegistryService;
 import org.eclipse.emf.ecp.view.template.model.VTStyleProperty;
 import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
@@ -57,6 +72,7 @@
 import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
 import org.eclipse.emfforms.spi.swt.core.layout.SWTGridDescription;
+import org.eclipse.jface.viewers.TableViewer;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -235,6 +251,132 @@
 		assertMainCell(gridDescription.getGrid().get(1));
 	}
 
+	@Test
+	public void isUpdateNeeded_BothNull_ReturnFalse() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControlSWTRenderer renderer = mock(TableControlSWTRenderer.class);
+		final IObservableValue<?> target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn(null);
+		final IObservableValue<?> model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn(null);
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertFalse(updateNeeded);
+	}
+
+	@Test
+	public void isUpdateNeeded_OnlyModelNull_ReturnTrue() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControlSWTRenderer renderer = mock(TableControlSWTRenderer.class);
+		@SuppressWarnings("unchecked")
+		final IObservableValue<Object> target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn(new Object());
+		final IObservableValue<?> model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn(null);
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertTrue(updateNeeded);
+	}
+
+	@Test
+	public void isUpdateNeeded_TargetModelNull_ReturnTrue() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControlSWTRenderer renderer = mock(TableControlSWTRenderer.class);
+		@SuppressWarnings("unchecked")
+		final IObservableValue<Object> target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn(null);
+		@SuppressWarnings("unchecked")
+		final IObservableValue<Object> model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn(new Object());
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertTrue(updateNeeded);
+	}
+
+	@Test
+	public void isUpdateNeeded_Same_ReturnFalse() {
+		/* setup */
+		final TableViewer tblViewer = mock(TableViewer.class);
+		final TableControlSWTRenderer renderer = mock(TableControlSWTRenderer.class);
+		@SuppressWarnings("unchecked")
+		final IObservableValue<String> target = mock(IObservableValue.class);
+		when(target.getValue()).thenReturn("VALUE");
+		@SuppressWarnings("unchecked")
+		final IObservableValue<String> model = mock(IObservableValue.class);
+		when(model.getValue()).thenReturn("VALUE");
+		final ECPTableEditingSupport editingSupport = renderer.new ECPTableEditingSupport(tblViewer, null, null, null);
+		final EditingState state = editingSupport.new EditingState(null, target, model);
+		/* act */
+		final boolean updateNeeded = state.isUpdateNeeded();
+		/* assert */
+		assertFalse(updateNeeded);
+	}
+
+	/**
+	 * Simple test to verify that the {@link TableControlSWTRenderer#applyValidation(VDiagnostic, VDiagnostic)}
+	 * method does not NPE on {@code null} inputs.
+	 */
+	@Test
+	public void applyValidation_VDiagnostic_VDiagnostic() {
+		final TableControlSWTRenderer fixture = spy(
+			new TableControlSWTRenderer(vElement, viewContext, reportService, emfFormsDatabinding,
+				emfFormsLabelProvider, vtViewTemplateProvider, imageRegistryService, emfFormsEditSupport));
+		doCallRealMethod().when(fixture).applyValidation(any(), any());
+
+		final Function<Boolean, VDiagnostic> diagnosticFactory = isNull -> {
+			VDiagnostic result = null;
+
+			if (!isNull) {
+				result = mock(VDiagnostic.class);
+				when(result.getDiagnostics()).thenReturn(ECollections.emptyEList());
+			}
+
+			return result;
+		};
+
+		final BiConsumer<Boolean, Boolean> testScenario = (oldIsNull, newIsNull) -> {
+			final VDiagnostic oldDiagnostic = diagnosticFactory.apply(oldIsNull);
+			final VDiagnostic newDiagnostic = diagnosticFactory.apply(newIsNull);
+
+			try {
+				fixture.applyValidation(oldDiagnostic, newDiagnostic);
+				if (oldDiagnostic != null) {
+					verify(oldDiagnostic).getDiagnostics();
+				}
+				if (newDiagnostic != null) {
+					verify(newDiagnostic).getDiagnostics();
+				}
+			} catch (final NullPointerException e) {
+				e.printStackTrace();
+				fail("Should not have got NPE");
+			}
+		};
+
+		// Case of old is not null, new is not null
+		testScenario.accept(false, false);
+
+		// Case of old is null, new is not null
+		testScenario.accept(true, false);
+
+		// Case of old is not null, new is null
+		testScenario.accept(false, true);
+
+		// Case of old is null, new is null
+		testScenario.accept(true, true);
+	}
+
 	private void assertLabelCell(SWTGridCell labelCell) {
 		assertThat(labelCell.getPreferredSize(), nullValue());
 		assertThat(labelCell.isHorizontalGrab(), is(false));
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableRendererTestUtil.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableRendererTestUtil.java
new file mode 100644
index 0000000..d0309e3
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/spi/table/swt/TableRendererTestUtil.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Eugen Neufeld - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.spi.table.swt;
+
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.emf.ecp.view.spi.model.VElement;
+import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
+import org.eclipse.jface.viewers.TableViewer;
+
+/**
+ * Util for Table Tests.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public final class TableRendererTestUtil {
+
+	private TableRendererTestUtil() {
+	}
+
+	public static TableViewer getTableViewerFromRenderer(AbstractSWTRenderer<VElement> renderer) {
+		try {
+			final Method method = TableControlSWTRenderer.class.getDeclaredMethod("getTableViewer");
+			method.setAccessible(true);
+			return (TableViewer) method.invoke(renderer);
+		} catch (final NoSuchMethodException ex) {
+			fail(ex.getMessage());
+		} catch (final SecurityException ex) {
+			fail(ex.getMessage());
+		} catch (final IllegalAccessException ex) {
+			fail(ex.getMessage());
+		} catch (final IllegalArgumentException ex) {
+			fail(ex.getMessage());
+		} catch (final InvocationTargetException ex) {
+			fail(ex.getMessage());
+		}
+		return null;
+	}
+}
diff --git a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/AllTests.java b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/AllTests.java
index 694eea4..96e2d17 100644
--- a/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/AllTests.java
+++ b/tests/org.eclipse.emf.ecp.view.table.ui.swt.test/src/org/eclipse/emf/ecp/view/table/ui/swt/test/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2015 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -9,6 +9,7 @@
  * Contributors:
  * Jonas - initial API and implementation
  * Lucas Koehler - added SWTTable_Test
+ * Christian W. Damus - add TableControlSWTRenderer_ITest
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.table.ui.swt.test;
 
@@ -17,13 +18,18 @@
 import org.eclipse.emf.ecp.view.spi.table.swt.SWTTableDatabindingLabel_PTest;
 import org.eclipse.emf.ecp.view.spi.table.swt.SWTTable_PTest;
 import org.eclipse.emf.ecp.view.spi.table.swt.TableControlDetailPanelRenderer_PTest;
+import org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRendererPerformance_PTest;
+import org.eclipse.emf.ecp.view.spi.table.swt.TableControlSWTRenderer_ITest;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
 
 @RunWith(Suite.class)
 @SuiteClasses({ SWTTable_PTest.class, SWTTableDatabindingLabel_PTest.class, RunnableManagerTest.class,
-	TableControlDetailPanelRenderer_PTest.class, MultiReferenceTooltipModifier_PTest.class, MultiReferenceCellEditor_PTest.class })
+	TableControlDetailPanelRenderer_PTest.class, MultiReferenceTooltipModifier_PTest.class,
+	MultiReferenceCellEditor_PTest.class, TableControlSWTRendererPerformance_PTest.class,
+	TableControlSWTRenderer_ITest.class,
+})
 public class AllTests {
 
 }
diff --git a/tests/org.eclipse.emf.ecp.view.table.validation.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.table.validation.test/META-INF/MANIFEST.MF
index 16e0f0f..37de0fa 100644
--- a/tests/org.eclipse.emf.ecp.view.table.validation.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.table.validation.test/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Validation Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.table.validation.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.table.validation.test;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.table.internal.validation;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.table.validation.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.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)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.table.validation.test
diff --git a/tests/org.eclipse.emf.ecp.view.table.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.view.table.validation.test/pom.xml
index 212b997..0efd19f 100644
--- a/tests/org.eclipse.emf.ecp.view.table.validation.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.table.validation.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.table.validation.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.template.model.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.template.model.test/META-INF/MANIFEST.MF
index 5e63ef0..bba118a 100644
--- a/tests/org.eclipse.emf.ecp.view.template.model.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.template.model.test/META-INF/MANIFEST.MF
@@ -2,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Template Model Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.model.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.template.model.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.template.model.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.annotation.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.bool.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.selector.hierarchy.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.alignment.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.background.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.fontProperties.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.labelwidth.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.mandatory.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.reference.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tab.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableStyleProperty.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.tableValidation.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.textControlEnablement.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.unsettable.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.validation.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.style.wrap.model.impl;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.template.annotation.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.annotation.model;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.view.template.annotation.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.annotation.model;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.model.test
-Import-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emf.emfforms.spi.view.controlgrid.model;version="[1.20.0,1.21.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.template.model.test/pom.xml b/tests/org.eclipse.emf.ecp.view.template.model.test/pom.xml
index 15d1e45..ba36c7e 100644
--- a/tests/org.eclipse.emf.ecp.view.template.model.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.template.model.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.template.model.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.template.service.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.template.service.test/META-INF/MANIFEST.MF
index bda6ac6..e947ec4 100644
--- a/tests/org.eclipse.emf.ecp.view.template.service.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.template.service.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Template Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.template.service.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.template.service;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.spi.view.template.service;version="1.19.0",
-  org.eclipse.emf.ecp.view.template.service;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.template.service.test;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.label.model;bundle-version="[1.19.0,1.20.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.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.template.service;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.spi.view.template.service;version="1.20.0",
+ org.eclipse.emf.ecp.view.template.service;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.template.service.test;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.label.model;bundle-version="[1.20.0,1.21.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.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.template.service.test
 Import-Package: org.eclipse.emf.edit.domain;version="0.0.0",
-  org.eclipse.emf.edit.provider;version="0.0.0"
+ org.eclipse.emf.edit.provider;version="0.0.0"
diff --git a/tests/org.eclipse.emf.ecp.view.template.service.test/pom.xml b/tests/org.eclipse.emf.ecp.view.template.service.test/pom.xml
index 6420922..c4b8c33 100644
--- a/tests/org.eclipse.emf.ecp.view.template.service.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.template.service.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-tests-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>

 	</parent>

 	<artifactId>org.eclipse.emf.ecp.view.template.service.test</artifactId>

 	<packaging>eclipse-test-plugin</packaging>

-	<version>1.19.0-SNAPSHOT</version>

+	<version>1.20.0-SNAPSHOT</version>

 	<groupId>org.eclipse.emf.ecp</groupId>

 	

 		<build>

diff --git a/tests/org.eclipse.emf.ecp.view.test.common.swt/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.test.common.swt/META-INF/MANIFEST.MF
index 66f8569..49eb40b 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common.swt/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.test.common.swt/META-INF/MANIFEST.MF
@@ -2,21 +2,21 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Helper Class for the SWT View Model Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.test.common.swt
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.test.common.swt;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.test.common.swt.spi;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.test.common.swt;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.test.common.swt.spi;version="1.20.0"
 Require-Bundle: org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)";visibility:=reexport
+ org.eclipse.jface.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.core.databinding.observable;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.test.common.swt
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/tests/org.eclipse.emf.ecp.view.test.common.swt/pom.xml b/tests/org.eclipse.emf.ecp.view.test.common.swt/pom.xml
index da144f8..25a9d23 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common.swt/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.test.common.swt/pom.xml
@@ -7,12 +7,12 @@
 	<parent>

 		<groupId>org.eclipse.emf.ecp</groupId>

 		<artifactId>ecp-tests-parent</artifactId>

-		<version>1.19.0-SNAPSHOT</version>

+		<version>1.20.0-SNAPSHOT</version>

 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>

 	</parent>

 

   <artifactId>org.eclipse.emf.ecp.view.test.common.swt</artifactId>

   <packaging>eclipse-plugin</packaging>

-  <version>1.19.0-SNAPSHOT</version>

+  <version>1.20.0-SNAPSHOT</version>

 

 </project>

diff --git a/tests/org.eclipse.emf.ecp.view.test.common.swt/src/org/eclipse/emf/ecp/view/test/common/swt/spi/SWTTestUtil.java b/tests/org.eclipse.emf.ecp.view.test.common.swt/src/org/eclipse/emf/ecp/view/test/common/swt/spi/SWTTestUtil.java
index fc642b0..62ed237 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common.swt/src/org/eclipse/emf/ecp/view/test/common/swt/spi/SWTTestUtil.java
+++ b/tests/org.eclipse.emf.ecp.view.test.common.swt/src/org/eclipse/emf/ecp/view/test/common/swt/spi/SWTTestUtil.java
@@ -15,6 +15,7 @@
 
 import java.util.NoSuchElementException;
 
+import org.eclipse.emfforms.spi.swt.core.SWTDataElementIdHelper;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Button;
@@ -23,7 +24,11 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.swt.widgets.Widget;
 
 /**
@@ -133,6 +138,35 @@
 	}
 
 	/**
+	 * Retrieves an element in the specified control by its unique Id, as defined in {@link SWTDataElementIdHelper}.
+	 *
+	 * @param control the parent control where the search control should be found.
+	 * @param id the unique ID of the element to find
+	 * @param clazz the class of control to find
+	 * @param <T> the type of Control to find
+	 * @return a optional referencing the control or an empty one if none was found.
+	 */
+	public static <T extends Control> T findControlById(Control control, final String id, final Class<T> clazz) {
+		// only get the first index, assuming id is unique
+		final Control result = find(control, 0, new Counter(), new ControlTest() {
+			@Override
+			public boolean testCondition(Control control) {
+				if (control.getClass() != clazz) {
+					return false;
+				}
+
+				final Object elementID = control.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY);
+				if (elementID != null && id.equals(elementID)) {
+					return true;
+				}
+
+				return false;
+			}
+		});
+		return clazz.cast(result);
+	}
+
+	/**
 	 * Waits for the ui thread to complete its work. Fails a testcase after 5 seconds.
 	 */
 	public static void waitForUIThread() {
@@ -201,6 +235,54 @@
 	}
 
 	/**
+	 * Selects the index in the given tree and notifies the tree's listeners (e.g. a corresponding tree viewer) about
+	 * the selection.
+	 *
+	 * @param tree The tree to select an element in
+	 * @param index The index of the element to select
+	 * @return the selected {@link TreeItem}
+	 */
+	public static TreeItem selectTreeItem(Tree tree, int index) {
+		final TreeItem result = tree.getItem(index);
+		selectTreeItem(result);
+		return result;
+	}
+
+	/**
+	 * Selects the given {@link TreeItem} in its parent {@link Tree} and notifies the tree's listeners.
+	 *
+	 * @param treeItem The {@link TreeItem} to select
+	 */
+	public static void selectTreeItem(TreeItem treeItem) {
+		final Tree tree = treeItem.getParent();
+		tree.setSelection(treeItem);
+		final Event event = new Event();
+		event.type = SWT.Selection;
+		event.widget = tree;
+		event.item = treeItem;
+		tree.notifyListeners(SWT.Selection, event);
+	}
+
+	/**
+	 * Selects the index in the given table and notifies the table's listeners (e.g. a corresponding table viewer) about
+	 * the selection.
+	 *
+	 * @param table The table to select an element in
+	 * @param index The index of the element to select
+	 * @return the selected {@link TableItem}
+	 */
+	public static TableItem selectTableItem(Table table, int index) {
+		table.setSelection(index);
+		final Event event = new Event();
+		event.type = SWT.Selection;
+		event.widget = table;
+		final TableItem result = table.getItem(index);
+		event.item = result;
+		table.notifyListeners(SWT.Selection, event);
+		return result;
+	}
+
+	/**
 	 * Interface for a tester used by the {@link SWTTestUtil#find(Control, int, Counter, ControlTest)} method.
 	 *
 	 * @author jfaltermeier
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.test.common/META-INF/MANIFEST.MF
index 6d5840f..6be4efd 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.test.common/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Common Test Plugin
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.test.common
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.test.common.spi;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.test.common.spi;version="1.20.0"
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="2.9.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.test.common
diff --git a/tests/org.eclipse.emf.ecp.view.test.common/pom.xml b/tests/org.eclipse.emf.ecp.view.test.common/pom.xml
index 50f0ba7..cb45557 100644
--- a/tests/org.eclipse.emf.ecp.view.test.common/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.test.common/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emf.ecp.view.test.common</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/META-INF/MANIFEST.MF
index 4125738..de75647 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,24 +2,24 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the TreeMasterDetail Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.19.0",
-  org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.spi.treemasterdetail.ui.swt;version="1.20.0",
+ org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.common.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.view.treemasterdetail.model;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.common.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/pom.xml
index 89948da..d2e5801 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test/pom.xml
@@ -5,13 +5,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
   
   <groupId>org.eclipse.emf.ecp</groupId>
   <artifactId>org.eclipse.emf.ecp.view.treemasterdetail.ui.swt.test</artifactId>
-  <version>1.19.0-SNAPSHOT</version>
+  <version>1.20.0-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
   
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/META-INF/MANIFEST.MF
index 6754c3f..752a97f 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms TreeMasterDetail Validation Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.treemasterdetail.validation.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.treemasterdetail.ui.swt;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.validation.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.treemasterdetail.validation.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.treemasterdetail.validation.test.TestTMD.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.treemasterdetail.validation.test
diff --git a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/pom.xml
index 459cadd..53cb181 100644
--- a/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.treemasterdetail.validation.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.treemasterdetail.validation.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.ui.editor.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.ui.editor.test/META-INF/MANIFEST.MF
index de952d5..bfa0459 100644
--- a/tests/org.eclipse.emf.ecp.view.ui.editor.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.ui.editor.test/META-INF/MANIFEST.MF
@@ -2,40 +2,40 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Editor SWTBot Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.ui.editor.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Activator: org.eclipse.emf.ecp.view.ui.editor.test.Activator
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.ui.editor.test;version="1.19.0";uses:="org.eclipse.emf.emfstore.bowling,org.eclipse.swtbot.swt.finder,org.osgi.framework",
-  org.eclipse.emf.ecp.view.ui.editor.test.controls;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.view.ui.editor.test;version="1.20.0";uses:="org.eclipse.emf.emfstore.bowling,org.eclipse.swtbot.swt.finder,org.osgi.framework",
+ org.eclipse.emf.ecp.view.ui.editor.test.controls;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.swtbot.eclipse.finder;bundle-version="[2.1.1,3.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="4.11.0",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="3.102.0",
-  org.eclipse.swtbot.junit4_x;bundle-version="2.1.1",
-  org.eclipse.jface.databinding;bundle-version="1.6.200",
-  org.apache.log4j;bundle-version="1.2.15",
-  org.eclipse.emf.ecp.view.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="1.4.1",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui;bundle-version="3.105.0",
-  org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.dynamictree.model.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.view.model.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.swtbot.eclipse.finder;bundle-version="[2.1.1,3.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="4.11.0",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="3.102.0",
+ org.eclipse.swtbot.junit4_x;bundle-version="2.1.1",
+ org.eclipse.jface.databinding;bundle-version="1.6.200",
+ org.apache.log4j;bundle-version="1.2.15",
+ org.eclipse.emf.ecp.view.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="1.4.1",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui;bundle-version="3.105.0",
+ org.eclipse.emf.ecp.emfstore.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.dynamictree.model.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.table.ui.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.view.model.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.test.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.ui.editor.test
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.ui.editor.test/pom.xml b/tests/org.eclipse.emf.ecp.view.ui.editor.test/pom.xml
index b88ad33..b982da2 100644
--- a/tests/org.eclipse.emf.ecp.view.ui.editor.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.ui.editor.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.ui.editor.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.unset.test/META-INF/MANIFEST.MF
index 9572ae9..a339729 100644
--- a/tests/org.eclipse.emf.ecp.view.unset.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: View Model Unset Service Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.unset.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.view.unset.test;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.unset.test;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.unset;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.unset;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.rule.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.unset.test
diff --git a/tests/org.eclipse.emf.ecp.view.unset.test/pom.xml b/tests/org.eclipse.emf.ecp.view.unset.test/pom.xml
index d52efd1..7e33234 100644
--- a/tests/org.eclipse.emf.ecp.view.unset.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.unset.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.unset.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.validation.bean.test/META-INF/MANIFEST.MF
index b93526b..611d137 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.bean.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .,
-  lib/commons-beanutils-1.9.2.jar,
-  lib/commons-lang3-3.3.2.jar,
-  lib/org.apache.bval.bundle-0.5.jar
+ lib/commons-beanutils-1.9.2.jar,
+ lib/commons-lang3-3.3.2.jar,
+ lib/org.apache.bval.bundle-0.5.jar
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.validation.bean.default;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.validation.bean.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: car;version="1.19.0";x-internal:=true,
-  car.impl;version="1.19.0";x-internal:=true,
-  car.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emf.ecp.view.validation.bean.test;version="1.19.0";x-internal:=true
+Export-Package: car;version="1.20.0";x-internal:=true,
+ car.impl;version="1.20.0";x-internal:=true,
+ car.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emf.ecp.view.validation.bean.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.validation.bean.test
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.view.validation.bean.test/pom.xml b/tests/org.eclipse.emf.ecp.view.validation.bean.test/pom.xml
index 49d49d4..a59cc72 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.bean.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.validation.bean.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.validation.bean.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.validation.test/META-INF/MANIFEST.MF
index 31e9b8c..abed53e 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/META-INF/MANIFEST.MF
@@ -2,32 +2,32 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.validation.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emf.ecp.view.validation.test;version="1.19.0",
-  org.eclipse.emf.ecp.view.validation.test.model;version="1.19.0",
-  org.eclipse.emf.ecp.view.validation.test.model.impl;version="1.19.0",
-  org.eclipse.emf.ecp.view.validation.test.model.util;version="1.19.0"
+Export-Package: org.eclipse.emf.ecp.view.validation.test;version="1.20.0",
+ org.eclipse.emf.ecp.view.validation.test.model;version="1.20.0",
+ org.eclipse.emf.ecp.view.validation.test.model.impl;version="1.20.0",
+ org.eclipse.emf.ecp.view.validation.test.model.util;version="1.20.0"
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common.prevalidation;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common.prevalidation;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Automatic-Module-Name: org.eclipse.emf.ecp.view.validation.test
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/model/test.ecore b/tests/org.eclipse.emf.ecp.view.validation.test/model/test.ecore
index a15221f..8d6e8a3 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/model/test.ecore
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/model/test.ecore
@@ -95,7 +95,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="secondAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TableWithMultiplicity">
+  <eClassifiers xsi:type="ecore:EClass" name="TableWithMultiplicity" eSuperTypes="#//TableObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="content" lowerBound="1"
         upperBound="-1" eType="#//TableContent" containment="true"/>
   </eClassifiers>
@@ -108,11 +108,11 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="weight" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TableWithoutMultiplicity">
+  <eClassifiers xsi:type="ecore:EClass" name="TableWithoutMultiplicity" eSuperTypes="#//TableObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="content" upperBound="-1"
         eType="#//TableContent" containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TableWithUnique">
+  <eClassifiers xsi:type="ecore:EClass" name="TableWithUnique" eSuperTypes="#//TableObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="content" upperBound="-1"
         eType="#//TableContent" containment="true"/>
   </eClassifiers>
@@ -125,7 +125,7 @@
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="stuff" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TableWithoutMultiplicityConcrete">
+  <eClassifiers xsi:type="ecore:EClass" name="TableWithoutMultiplicityConcrete" eSuperTypes="#//TableObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="content" upperBound="-1"
         eType="#//TableContentWithInnerChild" containment="true"/>
   </eClassifiers>
@@ -195,4 +195,7 @@
     <eLiterals name="Green" value="1"/>
     <eLiterals name="Blue" value="2"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TableObject" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/model/test.genmodel b/tests/org.eclipse.emf.ecp.view.validation.test/model/test.genmodel
index fe7730f..2821544 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/model/test.genmodel
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/model/test.genmodel
@@ -131,5 +131,8 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//Person/custom"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//Person/age"/>
     </genClasses>
+    <genClasses image="false" ecoreClass="test.ecore#//TableObject">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute test.ecore#//TableObject/label"/>
+    </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/pom.xml b/tests/org.eclipse.emf.ecp.view.validation.test/pom.xml
index 0e8b94f..4ebb584 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.validation.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ConcurrentLinkedSetQueue_Test.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ConcurrentLinkedSetQueue_Test.java
new file mode 100644
index 0000000..dde1c54
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/ConcurrentLinkedSetQueue_Test.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * nicole.behlen - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emf.ecp.view.validation.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import org.eclipse.emf.ecp.view.internal.validation.ConcurrentLinkedSetQueue;
+import org.junit.Test;
+
+/**
+ * JUnit to test the uniqueness functionality of {@link ConcurrentLinkedSetQueue}.
+ *
+ * @author nicole.behlen
+ */
+public class ConcurrentLinkedSetQueue_Test {
+
+	@Test(expected = NullPointerException.class)
+	public void offer_Null() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		queue.offer(null);
+		/* assert */
+		// null pointer exception
+	}
+
+	@Test
+	public void offer_NoRepeat() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		queue.offer(1);
+		queue.offer(2);
+		queue.offer(3);
+		/* assert */
+		assertEquals(3, queue.size());
+	}
+
+	@Test
+	public void offer_Repeat() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		queue.offer(1);
+		queue.offer(2);
+		queue.offer(2);
+		/* assert */
+		assertEquals(2, queue.size());
+	}
+
+	@Test
+	public void offerPollAndOfferAgain() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		queue.offer(1);
+		queue.offer(2);
+		queue.offer(2);
+		final Integer firstPoll = queue.poll();
+		queue.offer(1);
+		final Integer secondPoll = queue.poll();
+		final Integer thirdPoll = queue.poll();
+		final Integer fourthPoll = queue.poll();
+		/* assert */
+		assertEquals((Integer) 1, firstPoll);
+		assertEquals((Integer) 2, secondPoll);
+		assertEquals((Integer) 1, thirdPoll);
+		assertNull(fourthPoll);
+
+		assertEquals(0, queue.size());
+	}
+
+	@Test
+	public void addAll_RepeatedValues() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		queue.addAll(Arrays.asList(1, 2, 3));
+		queue.addAll(Arrays.asList(2, 3, 4));
+		/* assert */
+		assertEquals(4, queue.size());
+	}
+
+	@Test(expected = IllegalArgumentException.class)
+	public void addAll_itself() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		queue.addAll(queue);
+		/* assert */
+		// illegal argument exception
+	}
+
+	@Test
+	public void removeObject_emptyNull() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		final boolean result = queue.remove(null);
+		/* assert */
+		assertFalse(result);
+	}
+
+	@Test
+	public void removeObject_andAddAgain() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		queue.addAll(Arrays.asList(1, 2));
+		/* act */
+		final boolean result = queue.remove(1);
+		// to ensure that the value is added again
+		queue.add(1);
+		final Integer firstPoll = queue.poll(); // 2
+		final Integer secondPoll = queue.poll(); // 1
+		final Integer thirdPoll = queue.poll(); // null
+
+		/* assert */
+		assertTrue(result);
+		assertEquals((Integer) 2, firstPoll);
+		assertEquals((Integer) 1, secondPoll);
+		assertNull(thirdPoll);
+	}
+
+	@Test
+	public void remove_andAddAgain() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		queue.addAll(Arrays.asList(1, 2));
+		/* act */
+		final Integer remove = queue.remove();
+		// to ensure that the value is added again
+		queue.add(1);
+		final Integer firstPoll = queue.poll(); // 2
+		final Integer secondPoll = queue.poll(); // 1
+		final Integer thirdPoll = queue.poll(); // null
+
+		/* assert */
+		assertEquals((Integer) 1, remove);
+		assertEquals((Integer) 2, firstPoll);
+		assertEquals((Integer) 1, secondPoll);
+		assertNull(thirdPoll);
+	}
+
+	@Test
+	public void clear() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		queue.addAll(Arrays.asList(1, 2));
+		/* act */
+		queue.clear();
+		// to ensure that the value is added again
+		queue.add(1);
+		final Integer firstPoll = queue.poll(); // 1
+		final Integer secondPoll = queue.poll(); // null
+		/* assert */
+		assertEquals((Integer) 1, firstPoll);
+		assertNull(secondPoll);
+	}
+
+	@Test
+	public void removeAll() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		queue.addAll(Arrays.asList(1, 2));
+		/* act */
+		queue.removeAll(Arrays.asList(1));
+		// to ensure that the value is added again
+		queue.add(1);
+		final Integer firstPoll = queue.poll(); // 2
+		final Integer secondPoll = queue.poll(); // 1
+		final Integer thirdPoll = queue.poll(); // null
+		/* assert */
+		assertEquals((Integer) 2, firstPoll);
+		assertEquals((Integer) 1, secondPoll);
+		assertNull(thirdPoll);
+	}
+
+	@Test
+	public void retainAll() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		queue.addAll(Arrays.asList(1, 2));
+		/* act */
+		queue.retainAll(Arrays.asList(2));
+		// to ensure that the value is not added again
+		queue.add(2);
+		// to ensure that the value is added again
+		queue.add(1);
+		final Integer firstPoll = queue.poll(); // 2
+		final Integer secondPoll = queue.poll(); // 1
+		final Integer thirdPoll = queue.poll(); // null
+		/* assert */
+		assertEquals((Integer) 2, firstPoll);
+		assertEquals((Integer) 1, secondPoll);
+		assertNull(thirdPoll);
+	}
+
+	@Test(expected = IllegalStateException.class)
+	public void iterator_remove_withoutNext() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		queue.addAll(Arrays.asList(1, 2, 3));
+		/* act */
+		final Iterator<Integer> iter = queue.iterator();
+		iter.remove();
+		/* assert */
+		// illegal state exception
+	}
+
+	@Test(expected = NoSuchElementException.class)
+	public void iterator_next_empty() {
+		/* setup */
+		final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
+		/* act */
+		queue.iterator().next();
+	}
+
+}
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java
index a483d7e..77aa9d8 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/TableValidation_PTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,17 +8,32 @@
  *
  * Contributors:
  * Eugen - initial API and implementation
+ * Christian W. Damus - bug 543190
  ******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test;
 
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
 import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
+import org.eclipse.emf.ecp.view.spi.model.VControl;
 import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
@@ -26,11 +41,13 @@
 import org.eclipse.emf.ecp.view.spi.table.model.VTableControl;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
 import org.eclipse.emf.ecp.view.spi.table.model.VTableFactory;
+import org.eclipse.emf.ecp.view.spi.validation.ValidationService;
 import org.eclipse.emf.ecp.view.validation.test.model.Library;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild2;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithValidation;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithoutValidation;
+import org.eclipse.emf.ecp.view.validation.test.model.TableObject;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithMultiplicity;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithUnique;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithoutMultiplicity;
@@ -38,6 +55,9 @@
 import org.eclipse.emf.ecp.view.validation.test.model.TestFactory;
 import org.eclipse.emf.ecp.view.validation.test.model.TestPackage;
 import org.eclipse.emf.ecp.view.validation.test.model.Writer;
+import org.eclipse.emf.ecp.view.validation.test.model.util.TestSwitch;
+import org.hamcrest.FeatureMatcher;
+import org.hamcrest.Matcher;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -668,4 +688,146 @@
 		// assertEquals(0, control.getDiagnostic().getDiagnostics().size());
 		// assertEquals(Diagnostic.OK, control.getDiagnostic().getHighestSeverity());
 	}
+
+	/**
+	 * Test that creation of a child context (as for master-detail selection)
+	 * validates only the objects presented in the child context and the chain of
+	 * parent-context views.
+	 *
+	 * @see <a href="http://eclip.se/543190">bug 543190</a>
+	 */
+	@SuppressWarnings("unchecked")
+	@Test
+	public void testChildContextValidation() {
+		final VView view = VViewFactory.eINSTANCE.createView();
+		view.setRootEClass(TestPackage.Literals.TABLE_WITHOUT_MULTIPLICITY);
+		final VControl labelControl = VViewFactory.eINSTANCE.createControl();
+		labelControl.setDomainModelReference(TestPackage.Literals.TABLE_OBJECT__LABEL);
+		view.getChildren().add(labelControl);
+		final VTableControl tableControl = VTableFactory.eINSTANCE.createTableControl();
+		view.getChildren().add(tableControl);
+		final VTableDomainModelReference domainModelReference = VTableFactory.eINSTANCE
+			.createTableDomainModelReference();
+		tableControl.setDomainModelReference(domainModelReference);
+		final VFeaturePathDomainModelReference tableDMR = VViewFactory.eINSTANCE
+			.createFeaturePathDomainModelReference();
+		tableDMR.setDomainModelEFeature(TestPackage.Literals.TABLE_WITHOUT_MULTIPLICITY__CONTENT);
+		domainModelReference.setDomainModelReference(tableDMR);
+
+		//
+		// Add a column for each object in the levels of nesting
+		//
+
+		// The first level of nesting
+		VFeaturePathDomainModelReference column = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		domainModelReference.getColumnDomainModelReferences().add(column);
+		column.setDomainModelEFeature(TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__STUFF);
+
+		// The next level
+		column = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		domainModelReference.getColumnDomainModelReferences().add(column);
+		column.getDomainModelEReferencePath().add(TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__INNER_CHILD);
+		column.setDomainModelEFeature(TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__STUFF);
+
+		// The deepest object
+		column = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
+		domainModelReference.getColumnDomainModelReferences().add(column);
+		column.getDomainModelEReferencePath().add(TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__INNER_CHILD);
+		column.getDomainModelEReferencePath().add(TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__INNER_CHILD);
+		column.setDomainModelEFeature(TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__STUFF);
+
+		final TableWithoutMultiplicity tableWithoutMultiplicity = TestFactory.eINSTANCE
+			.createTableWithoutMultiplicity();
+		tableWithoutMultiplicity.setLabel("table");
+		final TableContentWithInnerChild child = TestFactory.eINSTANCE.createTableContentWithInnerChild();
+		child.setStuff("nested 1");
+		tableWithoutMultiplicity.getContent().add(child);
+		final TableContentWithInnerChild innerChild = TestFactory.eINSTANCE.createTableContentWithInnerChild();
+		innerChild.setStuff("nested 2");
+		child.setInnerChild(innerChild);
+		final TableContentWithInnerChild innerInnerChild = TestFactory.eINSTANCE
+			.createTableContentWithInnerChild();
+		innerInnerChild.setStuff("deepest");
+		innerChild.setInnerChild(innerInnerChild);
+
+		final Object user = new Object();
+		final ViewModelContext rootCtx = ViewModelContextFactory.INSTANCE.createViewModelContext(view,
+			tableWithoutMultiplicity);
+		rootCtx.addContextUser(user);
+
+		// Add a validation provider that complains about everything in our test data
+		final Set<Diagnostic> validations = new LinkedHashSet<>();
+		final ValidationService validationService = rootCtx.getService(ValidationService.class);
+		validationService.addValidationProvider(new TestSwitch<List<Diagnostic>>() {
+			@Override
+			public List<Diagnostic> caseTableObject(TableObject object) {
+				return Collections
+					.singletonList(error(object, TestPackage.Literals.TABLE_OBJECT__LABEL, object.getLabel()));
+			}
+
+			@Override
+			public List<Diagnostic> caseTableContentWithInnerChild(TableContentWithInnerChild object) {
+				return Collections
+					.singletonList(
+						error(object, TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__STUFF, object.getStuff()));
+			}
+
+			@Override
+			public List<Diagnostic> doSwitch(EObject eObject) {
+				List<Diagnostic> result = super.doSwitch(eObject);
+				if (result == null) {
+					result = Collections.emptyList();
+				} else {
+					validations.addAll(result);
+				}
+				return result;
+			}
+		}::doSwitch);
+
+		assertThat("Should have one problem for each level of the data nesting",
+			validations.size(), is(4));
+		assertThat("Wrong subject of diagnostic", validations,
+			hasItems(isAbout(tableWithoutMultiplicity), isAbout(child), isAbout(innerChild), isAbout(innerInnerChild)));
+
+		final VView childView = VViewFactory.eINSTANCE.createView();
+		childView.setRootEClass(TestPackage.Literals.TABLE_CONTENT_WITHOUT_VALIDATION);
+		final VControl nameControl = VViewFactory.eINSTANCE.createControl();
+		nameControl.setDomainModelReference(TestPackage.Literals.TABLE_CONTENT_WITH_INNER_CHILD__STUFF);
+		childView.getChildren().add(nameControl);
+
+		// Reset the validation tracking
+		validations.clear();
+
+		final ViewModelContext childContext = rootCtx.getChildContext(innerInnerChild, view, childView);
+		childContext.addContextUser(user);
+
+		// What did we re-validate?
+		assertThat("Wrong number of objects validated for child context", validations.size(), is(2));
+		assertThat("Child context element not validated", validations, hasItem(isAbout(innerInnerChild)));
+		assertThat("Parent context element not validated", validations, hasItem(isAbout(tableWithoutMultiplicity)));
+
+		childContext.removeContextUser(user);
+		rootCtx.removeContextUser(user);
+	}
+
+	static Matcher<Diagnostic> isAbout(Matcher<? super EObject> subjectMatcher) {
+		return new FeatureMatcher<Diagnostic, EObject>(subjectMatcher, "data[0] as EObject", "subject") {
+			@Override
+			protected EObject featureValueOf(Diagnostic actual) {
+				final List<?> data = actual.getData();
+				return data.isEmpty() || !(data.get(0) instanceof EObject)
+					? null
+					: (EObject) data.get(0);
+			}
+		};
+	}
+
+	static Matcher<Diagnostic> isAbout(EObject subject) {
+		return isAbout(is(subject));
+	}
+
+	static Diagnostic error(EObject subject, EStructuralFeature feature, String message) {
+		return new BasicDiagnostic(Diagnostic.ERROR, "test", 0, message, new Object[] { subject, feature });
+	}
+
 }
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableObject.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableObject.java
new file mode 100644
index 0000000..58b6d16
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableObject.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.validation.test.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.validation.test.model.TableObject#getLabel <em>Label</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.emf.ecp.view.validation.test.model.TestPackage#getTableObject()
+ * @model abstract="true"
+ * @generated
+ */
+public interface TableObject extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Label</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Label</em>' attribute.
+	 * @see #setLabel(String)
+	 * @see org.eclipse.emf.ecp.view.validation.test.model.TestPackage#getTableObject_Label()
+	 * @model
+	 * @generated
+	 */
+	String getLabel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.ecp.view.validation.test.model.TableObject#getLabel
+	 * <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value the new value of the '<em>Label</em>' attribute.
+	 * @see #getLabel()
+	 * @generated
+	 */
+	void setLabel(String value);
+
+} // TableObject
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithMultiplicity.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithMultiplicity.java
index 0957002..b9990bb 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithMultiplicity.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithMultiplicity.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,11 +8,11 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
 
 /**
  * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
  * @model
  * @generated
  */
-public interface TableWithMultiplicity extends EObject {
+public interface TableWithMultiplicity extends TableObject {
 	/**
 	 * Returns the value of the '<em><b>Content</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.emf.ecp.view.validation.test.model.TableContent}.
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithUnique.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithUnique.java
index 6cb22b7..863e7bc 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithUnique.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithUnique.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,11 +8,11 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
 
 /**
  * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
  * @model
  * @generated
  */
-public interface TableWithUnique extends EObject {
+public interface TableWithUnique extends TableObject {
 	/**
 	 * Returns the value of the '<em><b>Content</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.emf.ecp.view.validation.test.model.TableContent}.
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicity.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicity.java
index e1f1810..203bcfa 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicity.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicity.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,11 +8,11 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
 
 /**
  * <!-- begin-user-doc -->
@@ -30,7 +30,7 @@
  * @model
  * @generated
  */
-public interface TableWithoutMultiplicity extends EObject {
+public interface TableWithoutMultiplicity extends TableObject {
 	/**
 	 * Returns the value of the '<em><b>Content</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.emf.ecp.view.validation.test.model.TableContent}.
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicityConcrete.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicityConcrete.java
index 62a781a..b622ab5 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicityConcrete.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TableWithoutMultiplicityConcrete.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,12 +8,12 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 
 package org.eclipse.emf.ecp.view.validation.test.model;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
 
 /**
  * <!-- begin-user-doc -->
@@ -32,7 +32,7 @@
  * @model
  * @generated
  */
-public interface TableWithoutMultiplicityConcrete extends EObject {
+public interface TableWithoutMultiplicityConcrete extends TableObject {
 	/**
 	 * Returns the value of the '<em><b>Content</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild}.
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TestPackage.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TestPackage.java
index b33a242..e602a1b 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TestPackage.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/TestPackage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model;
 
@@ -540,6 +541,38 @@
 	int CONTENT_FEATURE_COUNT = 2;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableObjectImpl <em>Table
+	 * Object</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TableObjectImpl
+	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getTableObject()
+	 * @generated
+	 */
+	int TABLE_OBJECT = 22;
+
+	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_OBJECT__LABEL = 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_OBJECT_FEATURE_COUNT = 1;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableWithMultiplicityImpl
 	 * <em>Table With Multiplicity</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -552,6 +585,16 @@
 	int TABLE_WITH_MULTIPLICITY = 9;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_WITH_MULTIPLICITY__LABEL = TABLE_OBJECT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Content</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -559,7 +602,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITH_MULTIPLICITY__CONTENT = 0;
+	int TABLE_WITH_MULTIPLICITY__CONTENT = TABLE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Table With Multiplicity</em>' class.
@@ -569,7 +612,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITH_MULTIPLICITY_FEATURE_COUNT = 1;
+	int TABLE_WITH_MULTIPLICITY_FEATURE_COUNT = TABLE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableContentImpl <em>Table
@@ -693,6 +736,16 @@
 	int TABLE_WITHOUT_MULTIPLICITY = 13;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_WITHOUT_MULTIPLICITY__LABEL = TABLE_OBJECT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Content</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -700,7 +753,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITHOUT_MULTIPLICITY__CONTENT = 0;
+	int TABLE_WITHOUT_MULTIPLICITY__CONTENT = TABLE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Table Without Multiplicity</em>' class.
@@ -710,7 +763,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITHOUT_MULTIPLICITY_FEATURE_COUNT = 1;
+	int TABLE_WITHOUT_MULTIPLICITY_FEATURE_COUNT = TABLE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableWithUniqueImpl
@@ -725,6 +778,16 @@
 	int TABLE_WITH_UNIQUE = 14;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_WITH_UNIQUE__LABEL = TABLE_OBJECT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Content</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -732,7 +795,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITH_UNIQUE__CONTENT = 0;
+	int TABLE_WITH_UNIQUE__CONTENT = TABLE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Table With Unique</em>' class.
@@ -742,7 +805,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITH_UNIQUE_FEATURE_COUNT = 1;
+	int TABLE_WITH_UNIQUE_FEATURE_COUNT = TABLE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the
@@ -834,6 +897,16 @@
 	int TABLE_WITHOUT_MULTIPLICITY_CONCRETE = 17;
 
 	/**
+	 * The feature id for the '<em><b>Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_WITHOUT_MULTIPLICITY_CONCRETE__LABEL = TABLE_OBJECT__LABEL;
+
+	/**
 	 * The feature id for the '<em><b>Content</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -841,7 +914,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITHOUT_MULTIPLICITY_CONCRETE__CONTENT = 0;
+	int TABLE_WITHOUT_MULTIPLICITY_CONCRETE__CONTENT = TABLE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Table Without Multiplicity Concrete</em>' class.
@@ -851,7 +924,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TABLE_WITHOUT_MULTIPLICITY_CONCRETE_FEATURE_COUNT = 1;
+	int TABLE_WITHOUT_MULTIPLICITY_CONCRETE_FEATURE_COUNT = TABLE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.validation.test.model.impl.ReferencerImpl
@@ -1051,7 +1124,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getStringWithMaxLength8()
 	 * @generated
 	 */
-	int STRING_WITH_MAX_LENGTH8 = 24;
+	int STRING_WITH_MAX_LENGTH8 = 25;
 
 	/**
 	 * The meta object id for the '<em>Only Capitals</em>' data type.
@@ -1062,7 +1135,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getOnlyCapitals()
 	 * @generated
 	 */
-	int ONLY_CAPITALS = 25;
+	int ONLY_CAPITALS = 26;
 
 	/**
 	 * The meta object id for the '<em>Custom Data Type</em>' data type.
@@ -1073,7 +1146,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getCustomDataType()
 	 * @generated
 	 */
-	int CUSTOM_DATA_TYPE = 26;
+	int CUSTOM_DATA_TYPE = 27;
 
 	/**
 	 * The meta object id for the '<em>Phone Number</em>' data type.
@@ -1084,7 +1157,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getPhoneNumber()
 	 * @generated
 	 */
-	int PHONE_NUMBER = 27;
+	int PHONE_NUMBER = 28;
 
 	/**
 	 * The meta object id for the '<em>Min Length Of3</em>' data type.
@@ -1095,7 +1168,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getMinLengthOf3()
 	 * @generated
 	 */
-	int MIN_LENGTH_OF3 = 28;
+	int MIN_LENGTH_OF3 = 29;
 
 	/**
 	 * The meta object id for the '<em>Strict Min Length Of3</em>' data type.
@@ -1106,7 +1179,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getStrictMinLengthOf3()
 	 * @generated
 	 */
-	int STRICT_MIN_LENGTH_OF3 = 29;
+	int STRICT_MIN_LENGTH_OF3 = 30;
 
 	/**
 	 * The meta object id for the '<em>Age</em>' data type.
@@ -1117,7 +1190,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getAge()
 	 * @generated
 	 */
-	int AGE = 30;
+	int AGE = 31;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.validation.test.model.Gender <em>Gender</em>}' enum.
@@ -1128,7 +1201,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getGender()
 	 * @generated
 	 */
-	int GENDER = 22;
+	int GENDER = 23;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.emf.ecp.view.validation.test.model.Color <em>Color</em>}' enum.
@@ -1139,7 +1212,7 @@
 	 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getColor()
 	 * @generated
 	 */
-	int COLOR = 23;
+	int COLOR = 24;
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.validation.test.model.Library
@@ -2040,6 +2113,31 @@
 	EAttribute getPerson_Age();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.ecp.view.validation.test.model.TableObject <em>Table
+	 * Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Table Object</em>'.
+	 * @see org.eclipse.emf.ecp.view.validation.test.model.TableObject
+	 * @generated
+	 */
+	EClass getTableObject();
+
+	/**
+	 * Returns the meta object for the attribute
+	 * '{@link org.eclipse.emf.ecp.view.validation.test.model.TableObject#getLabel <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Label</em>'.
+	 * @see org.eclipse.emf.ecp.view.validation.test.model.TableObject#getLabel()
+	 * @see #getTableObject()
+	 * @generated
+	 */
+	EAttribute getTableObject_Label();
+
+	/**
 	 * Returns the meta object for data type '{@link java.lang.String <em>String With Max Length8</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2883,6 +2981,27 @@
 		EAttribute PERSON__AGE = eINSTANCE.getPerson_Age();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableObjectImpl
+		 * <em>Table Object</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TableObjectImpl
+		 * @see org.eclipse.emf.ecp.view.validation.test.model.impl.TestPackageImpl#getTableObject()
+		 * @generated
+		 */
+		EClass TABLE_OBJECT = eINSTANCE.getTableObject();
+
+		/**
+		 * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute TABLE_OBJECT__LABEL = eINSTANCE.getTableObject_Label();
+
+		/**
 		 * The meta object literal for the '<em>String With Max Length8</em>' data type.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableObjectImpl.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableObjectImpl.java
new file mode 100644
index 0000000..d9cf969
--- /dev/null
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableObjectImpl.java
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ */
+package org.eclipse.emf.ecp.view.validation.test.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecp.view.validation.test.model.TableObject;
+import org.eclipse.emf.ecp.view.validation.test.model.TestPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableObjectImpl#getLabel <em>Label</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class TableObjectImpl extends EObjectImpl implements TableObject {
+	/**
+	 * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LABEL_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected String label = LABEL_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected TableObjectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TestPackage.Literals.TABLE_OBJECT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getLabel() {
+		return label;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setLabel(String newLabel) {
+		final String oldLabel = label;
+		label = newLabel;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, TestPackage.TABLE_OBJECT__LABEL, oldLabel, label));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case TestPackage.TABLE_OBJECT__LABEL:
+			return getLabel();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case TestPackage.TABLE_OBJECT__LABEL:
+			setLabel((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case TestPackage.TABLE_OBJECT__LABEL:
+			setLabel(LABEL_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case TestPackage.TABLE_OBJECT__LABEL:
+			return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		final StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (label: ");
+		result.append(label);
+		result.append(')');
+		return result.toString();
+	}
+
+} // TableObjectImpl
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithMultiplicityImpl.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithMultiplicityImpl.java
index 2efffe7..8f5da22 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithMultiplicityImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithMultiplicityImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model.impl;
 
@@ -17,7 +18,6 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContent;
@@ -32,13 +32,13 @@
  * The following features are implemented:
  * </p>
  * <ul>
- * <li>{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableWithMultiplicityImpl#getContent <em>Content</em>}
- * </li>
+ * <li>{@link org.eclipse.emf.ecp.view.validation.test.model.impl.TableWithMultiplicityImpl#getContent
+ * <em>Content</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class TableWithMultiplicityImpl extends EObjectImpl implements TableWithMultiplicity {
+public class TableWithMultiplicityImpl extends TableObjectImpl implements TableWithMultiplicity {
 	/**
 	 * The cached value of the '{@link #getContent() <em>Content</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -80,7 +80,7 @@
 	@Override
 	public EList<TableContent> getContent() {
 		if (content == null) {
-			content = new EObjectContainmentEList<TableContent>(TableContent.class, this,
+			content = new EObjectContainmentEList<>(TableContent.class, this,
 				TestPackage.TABLE_WITH_MULTIPLICITY__CONTENT);
 		}
 		return content;
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithUniqueImpl.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithUniqueImpl.java
index 8660345..c303ad4 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithUniqueImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithUniqueImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model.impl;
 
@@ -17,7 +18,6 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContent;
@@ -37,7 +37,7 @@
  *
  * @generated
  */
-public class TableWithUniqueImpl extends EObjectImpl implements TableWithUnique {
+public class TableWithUniqueImpl extends TableObjectImpl implements TableWithUnique {
 	/**
 	 * The cached value of the '{@link #getContent() <em>Content</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -79,7 +79,7 @@
 	@Override
 	public EList<TableContent> getContent() {
 		if (content == null) {
-			content = new EObjectContainmentEList<TableContent>(TableContent.class, this,
+			content = new EObjectContainmentEList<>(TableContent.class, this,
 				TestPackage.TABLE_WITH_UNIQUE__CONTENT);
 		}
 		return content;
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityConcreteImpl.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityConcreteImpl.java
index d0cbf59..0351f83 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityConcreteImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityConcreteImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 
 package org.eclipse.emf.ecp.view.validation.test.model.impl;
@@ -18,7 +19,6 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild;
@@ -39,7 +39,7 @@
  *
  * @generated
  */
-public class TableWithoutMultiplicityConcreteImpl extends EObjectImpl implements TableWithoutMultiplicityConcrete {
+public class TableWithoutMultiplicityConcreteImpl extends TableObjectImpl implements TableWithoutMultiplicityConcrete {
 	/**
 	 * The cached value of the '{@link #getContent() <em>Content</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -81,7 +81,7 @@
 	@Override
 	public EList<TableContentWithInnerChild> getContent() {
 		if (content == null) {
-			content = new EObjectContainmentEList<TableContentWithInnerChild>(TableContentWithInnerChild.class, this,
+			content = new EObjectContainmentEList<>(TableContentWithInnerChild.class, this,
 				TestPackage.TABLE_WITHOUT_MULTIPLICITY_CONCRETE__CONTENT);
 		}
 		return content;
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityImpl.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityImpl.java
index 7016140..e54e327 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TableWithoutMultiplicityImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model.impl;
 
@@ -17,7 +18,6 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContent;
@@ -38,7 +38,7 @@
  *
  * @generated
  */
-public class TableWithoutMultiplicityImpl extends EObjectImpl implements TableWithoutMultiplicity {
+public class TableWithoutMultiplicityImpl extends TableObjectImpl implements TableWithoutMultiplicity {
 	/**
 	 * The cached value of the '{@link #getContent() <em>Content</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -80,7 +80,7 @@
 	@Override
 	public EList<TableContent> getContent() {
 		if (content == null) {
-			content = new EObjectContainmentEList<TableContent>(TableContent.class, this,
+			content = new EObjectContainmentEList<>(TableContent.class, this,
 				TestPackage.TABLE_WITHOUT_MULTIPLICITY__CONTENT);
 		}
 		return content;
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TestPackageImpl.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TestPackageImpl.java
index a757c4e..4062ef8 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TestPackageImpl.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/impl/TestPackageImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model.impl;
 
@@ -41,6 +42,7 @@
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild2;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithValidation;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithoutValidation;
+import org.eclipse.emf.ecp.view.validation.test.model.TableObject;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithMultiplicity;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithUnique;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithoutMultiplicity;
@@ -240,6 +242,14 @@
 	 *
 	 * @generated
 	 */
+	private EClass tableObjectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	private EEnum genderEEnum = null;
 
 	/**
@@ -352,8 +362,10 @@
 		}
 
 		// Obtain or create and register package
-		final TestPackageImpl theTestPackage = (TestPackageImpl) (EPackage.Registry.INSTANCE
-			.get(eNS_URI) instanceof TestPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new TestPackageImpl());
+		final Object registeredTestPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		final TestPackageImpl theTestPackage = registeredTestPackage instanceof TestPackageImpl
+			? (TestPackageImpl) registeredTestPackage
+			: new TestPackageImpl();
 
 		isInited = true;
 
@@ -1157,6 +1169,28 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getTableObject() {
+		return tableObjectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getTableObject_Label() {
+		return (EAttribute) tableObjectEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
 	public EDataType getStringWithMaxLength8() {
 		return stringWithMaxLength8EDataType;
 	}
@@ -1375,6 +1409,9 @@
 		createEAttribute(personEClass, PERSON__CUSTOM);
 		createEAttribute(personEClass, PERSON__AGE);
 
+		tableObjectEClass = createEClass(TABLE_OBJECT);
+		createEAttribute(tableObjectEClass, TABLE_OBJECT__LABEL);
+
 		// Create enums
 		genderEEnum = createEEnum(GENDER);
 		colorEEnum = createEEnum(COLOR);
@@ -1421,18 +1458,22 @@
 		// Set bounds for type parameters
 
 		// Add supertypes to classes
+		tableWithMultiplicityEClass.getESuperTypes().add(getTableObject());
 		tableContentWithoutValidationEClass.getESuperTypes().add(getTableContent());
 		tableContentWithValidationEClass.getESuperTypes().add(getTableContent());
+		tableWithoutMultiplicityEClass.getESuperTypes().add(getTableObject());
+		tableWithUniqueEClass.getESuperTypes().add(getTableObject());
 		tableContentWithInnerChild2EClass.getESuperTypes().add(getTableContent());
 		tableContentWithInnerChildEClass.getESuperTypes().add(getTableContent());
+		tableWithoutMultiplicityConcreteEClass.getESuperTypes().add(getTableObject());
 
 		// Initialize classes and features; add operations and parameters
 		initEClass(libraryEClass, Library.class, "Library", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getLibrary_Name(), ecorePackage.getEString(), "name", null, 0, 1, Library.class, !IS_TRANSIENT,
 			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getLibrary_Writers(), getWriter(), getWriter_Library(), "writers", null, 1, -1,
-			Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-			!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getLibrary_Writers(), getWriter(), getWriter_Library(), "writers", null, 1, -1, Library.class,
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+			!IS_DERIVED, IS_ORDERED);
 		initEReference(getLibrary_Books(), getBook(), null, "books", null, 0, -1, Library.class, !IS_TRANSIENT,
 			!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
 			IS_ORDERED);
@@ -1466,13 +1507,13 @@
 			!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getWriter_Pseudonym(), ecorePackage.getEBoolean(), "Pseudonym", "false", 0, 1, Writer.class,
 			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getWriter_Library(), getLibrary(), getLibrary_Writers(), "library", null, 0, 1,
-			Writer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-			!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getWriter_Initials(), getMinLengthOf3(), "initials", null, 0, 1, Writer.class,
-			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getWriter_Title(), getStrictMinLengthOf3(), "title", null, 0, 1, Writer.class,
-			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getWriter_Library(), getLibrary(), getLibrary_Writers(), "library", null, 0, 1, Writer.class,
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+			!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getWriter_Initials(), getMinLengthOf3(), "initials", null, 0, 1, Writer.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getWriter_Title(), getStrictMinLengthOf3(), "title", null, 0, 1, Writer.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		op = addEOperation(writerEClass, ecorePackage.getEBoolean(), "validate", 0, 1, IS_UNIQUE, IS_ORDERED);
 		addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostic", 0, 1, IS_UNIQUE, IS_ORDERED);
@@ -1593,14 +1634,14 @@
 
 		initEClass(tableContentWithInnerChild2EClass, TableContentWithInnerChild2.class, "TableContentWithInnerChild2",
 			!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTableContentWithInnerChild2_InnerChild(), getTableContent(), null, "innerChild", null, 0,
-			1, TableContentWithInnerChild2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+		initEReference(getTableContentWithInnerChild2_InnerChild(), getTableContent(), null, "innerChild", null, 0, 1,
+			TableContentWithInnerChild2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
 			!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(tableContentWithInnerChildEClass, TableContentWithInnerChild.class, "TableContentWithInnerChild",
 			!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTableContentWithInnerChild_InnerChild(), getTableContent(), null, "innerChild", null, 0,
-			1, TableContentWithInnerChild.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+		initEReference(getTableContentWithInnerChild_InnerChild(), getTableContent(), null, "innerChild", null, 0, 1,
+			TableContentWithInnerChild.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
 			!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getTableContentWithInnerChild_Stuff(), ecorePackage.getEString(), "stuff", null, 0, 1,
 			TableContentWithInnerChild.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
@@ -1608,8 +1649,8 @@
 
 		initEClass(tableWithoutMultiplicityConcreteEClass, TableWithoutMultiplicityConcrete.class,
 			"TableWithoutMultiplicityConcrete", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTableWithoutMultiplicityConcrete_Content(), getTableContentWithInnerChild(), null,
-			"content", null, 0, -1, TableWithoutMultiplicityConcrete.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+		initEReference(getTableWithoutMultiplicityConcrete_Content(), getTableContentWithInnerChild(), null, "content",
+			null, 0, -1, TableWithoutMultiplicityConcrete.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
 			IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(referencerEClass, Referencer.class, "Referencer", !IS_ABSTRACT, !IS_INTERFACE,
@@ -1621,9 +1662,9 @@
 		initEClass(crossReferenceContainerEClass, CrossReferenceContainer.class, "CrossReferenceContainer",
 			!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCrossReferenceContainer_Contents(), getCrossReferenceContent(),
-			getCrossReferenceContent_Parent(), "contents", null, 0, -1, CrossReferenceContainer.class,
-			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
-			!IS_DERIVED, IS_ORDERED);
+			getCrossReferenceContent_Parent(), "contents", null, 0, -1, CrossReferenceContainer.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
 		initEReference(getCrossReferenceContainer_SingleContent(), getCrossReferenceContent(),
 			getCrossReferenceContent_SingleParent(), "singleContent", null, 0, 1, CrossReferenceContainer.class,
 			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
@@ -1632,9 +1673,9 @@
 		initEClass(crossReferenceContentEClass, CrossReferenceContent.class, "CrossReferenceContent", !IS_ABSTRACT,
 			!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCrossReferenceContent_Parent(), getCrossReferenceContainer(),
-			getCrossReferenceContainer_Contents(), "parent", null, 0, 1, CrossReferenceContent.class,
-			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
-			!IS_DERIVED, IS_ORDERED);
+			getCrossReferenceContainer_Contents(), "parent", null, 0, 1, CrossReferenceContent.class, !IS_TRANSIENT,
+			!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+			IS_ORDERED);
 		initEReference(getCrossReferenceContent_SingleParent(), getCrossReferenceContainer(),
 			getCrossReferenceContainer_SingleContent(), "singleParent", null, 0, 1, CrossReferenceContent.class,
 			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
@@ -1643,15 +1684,20 @@
 		initEClass(personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getPerson_FirstName(), getStringWithMaxLength8(), "firstName", null, 0, 1, Person.class,
 			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getPerson_Gender(), getGender(), "gender", null, 0, 1, Person.class, !IS_TRANSIENT,
+		initEAttribute(getPerson_Gender(), getGender(), "gender", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE,
+			IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPerson_LastName(), getOnlyCapitals(), "lastName", null, 0, 1, Person.class, !IS_TRANSIENT,
 			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getPerson_LastName(), getOnlyCapitals(), "lastName", null, 0, 1, Person.class,
-			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPerson_Custom(), getCustomDataType(), "custom", null, 0, 1, Person.class, !IS_TRANSIENT,
 			!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPerson_Age(), getAge(), "age", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE,
 			IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(tableObjectEClass, TableObject.class, "TableObject", IS_ABSTRACT, !IS_INTERFACE,
+			IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableObject_Label(), ecorePackage.getEString(), "label", null, 0, 1, TableObject.class,
+			!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		// Initialize enums and add enum literals
 		initEEnum(genderEEnum, Gender.class, "Gender");
 		addEEnumLiteral(genderEEnum, Gender.MALE);
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestAdapterFactory.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestAdapterFactory.java
index 17066dc..19c774c 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestAdapterFactory.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestAdapterFactory.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model.util;
 
@@ -32,6 +33,7 @@
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild2;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithValidation;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithoutValidation;
+import org.eclipse.emf.ecp.view.validation.test.model.TableObject;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithMultiplicity;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithUnique;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithoutMultiplicity;
@@ -211,6 +213,11 @@
 		}
 
 		@Override
+		public Adapter caseTableObject(TableObject object) {
+			return createTableObjectAdapter();
+		}
+
+		@Override
 		public Adapter defaultCase(EObject object) {
 			return createEObjectAdapter();
 		}
@@ -590,6 +597,22 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecp.view.validation.test.model.TableObject
+	 * <em>Table Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.emf.ecp.view.validation.test.model.TableObject
+	 * @generated
+	 */
+	public Adapter createTableObjectAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null.
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestSwitch.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestSwitch.java
index a14d89d..a9373c5 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestSwitch.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestSwitch.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model.util;
 
@@ -31,6 +32,7 @@
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild2;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithValidation;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithoutValidation;
+import org.eclipse.emf.ecp.view.validation.test.model.TableObject;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithMultiplicity;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithUnique;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithoutMultiplicity;
@@ -177,6 +179,9 @@
 			final TableWithMultiplicity tableWithMultiplicity = (TableWithMultiplicity) theEObject;
 			T result = caseTableWithMultiplicity(tableWithMultiplicity);
 			if (result == null) {
+				result = caseTableObject(tableWithMultiplicity);
+			}
+			if (result == null) {
 				result = defaultCase(theEObject);
 			}
 			return result;
@@ -215,6 +220,9 @@
 			final TableWithoutMultiplicity tableWithoutMultiplicity = (TableWithoutMultiplicity) theEObject;
 			T result = caseTableWithoutMultiplicity(tableWithoutMultiplicity);
 			if (result == null) {
+				result = caseTableObject(tableWithoutMultiplicity);
+			}
+			if (result == null) {
 				result = defaultCase(theEObject);
 			}
 			return result;
@@ -223,6 +231,9 @@
 			final TableWithUnique tableWithUnique = (TableWithUnique) theEObject;
 			T result = caseTableWithUnique(tableWithUnique);
 			if (result == null) {
+				result = caseTableObject(tableWithUnique);
+			}
+			if (result == null) {
 				result = defaultCase(theEObject);
 			}
 			return result;
@@ -253,6 +264,9 @@
 			final TableWithoutMultiplicityConcrete tableWithoutMultiplicityConcrete = (TableWithoutMultiplicityConcrete) theEObject;
 			T result = caseTableWithoutMultiplicityConcrete(tableWithoutMultiplicityConcrete);
 			if (result == null) {
+				result = caseTableObject(tableWithoutMultiplicityConcrete);
+			}
+			if (result == null) {
 				result = defaultCase(theEObject);
 			}
 			return result;
@@ -289,6 +303,14 @@
 			}
 			return result;
 		}
+		case TestPackage.TABLE_OBJECT: {
+			final TableObject tableObject = (TableObject) theEObject;
+			T result = caseTableObject(tableObject);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
 		default:
 			return defaultCase(theEObject);
 		}
@@ -647,6 +669,22 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Object</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableObject(TableObject object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestValidator.java b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestValidator.java
index f5c50be..dd49244 100644
--- a/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestValidator.java
+++ b/tests/org.eclipse.emf.ecp.view.validation.test/src/org/eclipse/emf/ecp/view/validation/test/model/util/TestValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,6 +8,7 @@
  *
  * Contributors:
  * Eugen Neufeld - initial API and implementation
+ * Christian W. Damus - bug 543190
  *******************************************************************************/
 package org.eclipse.emf.ecp.view.validation.test.model.util;
 
@@ -47,6 +48,7 @@
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithInnerChild2;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithValidation;
 import org.eclipse.emf.ecp.view.validation.test.model.TableContentWithoutValidation;
+import org.eclipse.emf.ecp.view.validation.test.model.TableObject;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithMultiplicity;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithUnique;
 import org.eclipse.emf.ecp.view.validation.test.model.TableWithoutMultiplicity;
@@ -218,6 +220,8 @@
 			return validateCrossReferenceContent((CrossReferenceContent) value, diagnostics, context);
 		case TestPackage.PERSON:
 			return validatePerson((Person) value, diagnostics, context);
+		case TestPackage.TABLE_OBJECT:
+			return validateTableObject((TableObject) value, diagnostics, context);
 		case TestPackage.GENDER:
 			return validateGender((Gender) value, diagnostics, context);
 		case TestPackage.COLOR:
@@ -490,7 +494,7 @@
 		// -> verify the diagnostic details, including severity, code, and message
 		// Ensure that you remove @generated or mark it @generated NOT
 		final EList<Content> contents = container.getContents();
-		final Map<String, Set<Content>> uniqueAttToContentMap = new LinkedHashMap<String, Set<Content>>();
+		final Map<String, Set<Content>> uniqueAttToContentMap = new LinkedHashMap<>();
 
 		for (final Content content : contents) {
 			final String uniquiAtt = content.getUniqueAttribute();
@@ -499,7 +503,7 @@
 			}
 			uniqueAttToContentMap.get(uniquiAtt).add(content);
 		}
-		final List<Content> duplicates = new ArrayList<Content>();
+		final List<Content> duplicates = new ArrayList<>();
 		for (final String language : uniqueAttToContentMap.keySet()) {
 			if (uniqueAttToContentMap.get(language).size() > 1) {
 				duplicates.addAll(uniqueAttToContentMap.get(language));
@@ -700,6 +704,17 @@
 	 *
 	 * @generated
 	 */
+	public boolean validateTableObject(TableObject tableObject, DiagnosticChain diagnostics,
+		Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(tableObject, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
 	public boolean validateGender(Gender gender, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return true;
 	}
@@ -953,7 +968,7 @@
 	private boolean validateUniqueness(TableWithUnique tableWithUnique, DiagnosticChain diagnostics,
 		Map<Object, Object> context) {
 		final EList<TableContent> contents = tableWithUnique.getContent();
-		final Map<String, Set<TableContent>> uniqueAttToContentMap = new LinkedHashMap<String, Set<TableContent>>();
+		final Map<String, Set<TableContent>> uniqueAttToContentMap = new LinkedHashMap<>();
 
 		EStructuralFeature nameFeature = null;
 
@@ -972,7 +987,7 @@
 			}
 			uniqueAttToContentMap.get(uniquiAtt).add(content);
 		}
-		final List<TableContent> duplicates = new ArrayList<TableContent>();
+		final List<TableContent> duplicates = new ArrayList<>();
 		for (final String language : uniqueAttToContentMap.keySet()) {
 			if (uniqueAttToContentMap.get(language).size() > 1) {
 				duplicates.addAll(uniqueAttToContentMap.get(language));
diff --git a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/META-INF/MANIFEST.MF
index c7aafe7..9448259 100644
--- a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for the VerticalSWT Renderer
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.vertical.ui.swt.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.vertical.ui.swt.test;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.edit;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.jface;bundle-version="3.8.102",
-  org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emf.ecp.view.vertical.ui.swt;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.vertical.ui.swt.test;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swt;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.edit;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.jface;bundle-version="3.8.102",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange.default;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.vertical.ui.swt.test
diff --git a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/pom.xml b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/pom.xml
index c814968..60ce858 100644
--- a/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.vertical.ui.swt.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.vertical.ui.swt.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.view.viewproxy.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.view.viewproxy.test/META-INF/MANIFEST.MF
index a28325c..bee3cbf 100644
--- a/tests/org.eclipse.emf.ecp.view.viewproxy.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.view.viewproxy.test/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: ViewProxy Tests
 Bundle-SymbolicName: org.eclipse.emf.ecp.view.viewproxy.tests;singleton:=true
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.19.0",
-  org.eclipse.emf.ecp.view.viewproxy.tests;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emf.ecp.view.viewproxy.model;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emf.ecp.view.internal.viewproxy.resolver;version="1.20.0",
+ org.eclipse.emf.ecp.view.viewproxy.tests;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.view.viewproxy.tests
diff --git a/tests/org.eclipse.emf.ecp.view.viewproxy.test/pom.xml b/tests/org.eclipse.emf.ecp.view.viewproxy.test/pom.xml
index 1f83954..f53c430 100644
--- a/tests/org.eclipse.emf.ecp.view.viewproxy.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.view.viewproxy.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.view.viewproxy.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/META-INF/MANIFEST.MF
index 1e69438..2687425 100644
--- a/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emf.ecp.workspace.ui.rap.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emf.ecp.workspace.ui.rap.test;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emf.ecp.workspace.ui.rap.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.equinox.ds;bundle-version="[1.4.300,2.0.0)",
-  org.eclipse.emf.ecp.workspace.core;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.equinox.ds;bundle-version="[1.4.300,2.0.0)",
+ org.eclipse.emf.ecp.workspace.core;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emf.ecp.workspace.ui.rap.test
 Import-Package: org.eclipse.core.runtime;version="0.0.0",
-  org.eclipse.emf.ecp.core;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap;version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="0.0.0"
+ org.eclipse.emf.ecp.core;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap;version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.core.rap.sessionprovider.test;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="0.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/pom.xml b/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/pom.xml
index ba34e5e..f9ce0e2 100644
--- a/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/pom.xml
+++ b/tests/org.eclipse.emf.ecp.workspace.ui.rap.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emf.ecp.workspace.ui.rap.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF
index 32c22ee..61bd295 100644
--- a/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.common.tests/META-INF/MANIFEST.MF
@@ -2,16 +2,18 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Locale Tests
 Bundle-SymbolicName: org.eclipse.emfforms.common.tests;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.common;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.common.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.common.locale;version="1.19.0"
-Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
+Fragment-Host: org.eclipse.emfforms.common;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.common.sort;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.common.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.common.locale;version="1.20.0";x-internal:=true
+Require-Bundle: org.hamcrest.library;bundle-version="[1.3.0,2.0.0)",
  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.13.0,3.0.0)",
- org.eclipse.emfforms.editor;bundle-version="[1.17.0,2.0.0)",
+ org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)",
  org.eclipse.emf.edit;bundle-version="[2.14.0,3.0.0)",
- org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,2.0.0)"
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.junit;bundle-version="[4.12.0,5.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.common.tests
diff --git a/tests/org.eclipse.emfforms.common.tests/pom.xml b/tests/org.eclipse.emfforms.common.tests/pom.xml
index 9841a74..21707f7 100644
--- a/tests/org.eclipse.emfforms.common.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.common.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.common.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/common/sort/NumberAwareStringComparator_PTest.java b/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/common/sort/NumberAwareStringComparator_PTest.java
new file mode 100644
index 0000000..e09c6d0
--- /dev/null
+++ b/tests/org.eclipse.emfforms.common.tests/src/org/eclipse/emfforms/common/sort/NumberAwareStringComparator_PTest.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.common.sort;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.hamcrest.Matchers.lessThanOrEqualTo;
+
+import org.eclipse.emfforms.spi.common.sort.NumberAwareStringComparator;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link NumberAwareStringComparator}. Run as plugin test because otherwise the hamcrest matchers do not
+ * work due to a security exception.
+ *
+ * @author Lucas Koehler
+ *
+ */
+public class NumberAwareStringComparator_PTest {
+
+	private static NumberAwareStringComparator comparator;
+
+	@BeforeClass
+	public static void setUp() {
+		comparator = NumberAwareStringComparator.getInstance();
+	}
+
+	@Test
+	public void houseNumbers() {
+		// With normal string compare a letter is bigger than a digit => 100A would be bigger than 1000A
+		// With number aware compare 100A should be smaller
+		assertThat(comparator.compare("100A", "1000A"), lessThanOrEqualTo(-1)); //$NON-NLS-1$//$NON-NLS-2$
+
+		assertThat(comparator.compare("2A", "10A"), lessThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("2B", "10A"), lessThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("2B", "2A"), greaterThanOrEqualTo(1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("25C", "25C"), equalTo(0)); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	@Test
+	public void mixedSameSegments() {
+		assertThat(comparator.compare("n1a1", "n1aa"), lessThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1aa", "n1a1"), greaterThanOrEqualTo(1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1aa", "n1aa"), equalTo(0)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1a1", "n1a1"), equalTo(0)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1a1", "n1a"), greaterThanOrEqualTo(1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1a1", "n1aa1"), lessThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1b1", "n1a2"), greaterThanOrEqualTo(1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1a1", "n1a1a"), lessThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+
+		assertThat(comparator.compare("n1a2", "n1a1a"), greaterThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/** The sorting should ignore case because otherwise z > a > Z which would be really unintuitive for users. */
+	@Test
+	public void ignoreCase() {
+		assertThat(comparator.compare("a", "z"), lessThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+		assertThat(comparator.compare("a", "Z"), lessThanOrEqualTo(-1)); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+}
diff --git a/tests/org.eclipse.emfforms.common.validation.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.common.validation.tests/META-INF/MANIFEST.MF
index 0d44af8..457b436 100644
--- a/tests/org.eclipse.emfforms.common.validation.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.common.validation.tests/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Common Validation Tests
 Bundle-SymbolicName: org.eclipse.emfforms.common.validation.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.common.validation.tests;version="1.19.0"
+Fragment-Host: org.eclipse.emfforms.common.validation;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.common.internal.validation;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.common.validation.tests;version="1.20.0"
 Require-Bundle: 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.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.common.validation.tests
diff --git a/tests/org.eclipse.emfforms.common.validation.tests/pom.xml b/tests/org.eclipse.emfforms.common.validation.tests/pom.xml
index f024d58..6efccef 100644
--- a/tests/org.eclipse.emfforms.common.validation.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.common.validation.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.common.validation.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.common.validation.tests/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl_Test.java b/tests/org.eclipse.emfforms.common.validation.tests/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl_Test.java
index d797854..a112ed8 100644
--- a/tests/org.eclipse.emfforms.common.validation.tests/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl_Test.java
+++ b/tests/org.eclipse.emfforms.common.validation.tests/src/org/eclipse/emfforms/common/internal/validation/ValidationServiceImpl_Test.java
@@ -38,6 +38,7 @@
 import org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider;
 import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
 import org.eclipse.emf.ecore.util.EObjectValidator;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
@@ -182,6 +183,30 @@
 	}
 
 	@Test
+	public void diagnosticValidateUsesDefaultValidatorForDynamicDomainModel() {
+
+		final EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		final EClass extendedPlayerClass = EcoreFactory.eINSTANCE.createEClass();
+		extendedPlayerClass.setName("ExtendedPlayer");
+		extendedPlayerClass.getESuperTypes().add(BowlingPackage.eINSTANCE.getPlayer());
+		ePackage.setName("extendedPlayerPackage");
+		ePackage.setNsPrefix("extendedPlayerPackage");
+		ePackage.setNsURI("extendedPlayerPackage");
+		ePackage.getEClassifiers().add(extendedPlayerClass);
+
+		final EObject extendedPlayer = new DynamicEObjectImpl(extendedPlayerClass);
+		extendedPlayer.eSet(BowlingPackage.eINSTANCE.getPlayer_Height(), 20d);
+
+		final EValidator validatorForEObject = fixture.getEValidatorForEObject(extendedPlayer);
+		final BasicDiagnostic diagnostic = new BasicDiagnostic();
+		validatorForEObject.validate(extendedPlayerClass, extendedPlayer, diagnostic, null);
+		assertSame(Diagnostic.ERROR, diagnostic.getSeverity());
+		assertSame(1, diagnostic.getChildren().size());
+		assertSame(EObjectValidator.DIAGNOSTIC_SOURCE, diagnostic.getChildren().get(0).getSource());
+		assertSame(BowlingPackage.eINSTANCE.getPlayer_EMails(), diagnostic.getChildren().get(0).getData().get(1));
+	}
+
+	@Test
 	public void diagnosticValidateUsesDefaultValidator() {
 
 		final EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
diff --git a/tests/org.eclipse.emfforms.core.bazaar.tests/.classpath b/tests/org.eclipse.emfforms.core.bazaar.tests/.classpath
index e8ea977..4f83b23 100644
--- a/tests/org.eclipse.emfforms.core.bazaar.tests/.classpath
+++ b/tests/org.eclipse.emfforms.core.bazaar.tests/.classpath
@@ -2,6 +2,6 @@
 <classpath>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.jdt.core.prefs
index ead8391..643ebf1 100644
--- a/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/tests/org.eclipse.emfforms.core.bazaar.tests/.settings/org.eclipse.jdt.core.prefs
@@ -26,9 +26,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

-org.eclipse.jdt.core.compiler.compliance=1.7

+org.eclipse.jdt.core.compiler.compliance=1.8

 org.eclipse.jdt.core.compiler.debug.lineNumber=generate

 org.eclipse.jdt.core.compiler.debug.localVariable=generate

 org.eclipse.jdt.core.compiler.debug.sourceFile=generate

@@ -132,7 +132,7 @@
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning

 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

 org.eclipse.jdt.core.compiler.release=disabled

-org.eclipse.jdt.core.compiler.source=1.7

+org.eclipse.jdt.core.compiler.source=1.8

 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled

 org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL

 org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO

diff --git a/tests/org.eclipse.emfforms.core.bazaar.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.bazaar.tests/META-INF/MANIFEST.MF
index 0053ed6..9dc2334 100644
--- a/tests/org.eclipse.emfforms.core.bazaar.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.bazaar.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Bazaar Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.bazaar.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.bazaar;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.bazaar.internal;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.bazaar.internal;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.bazaar.tests
 Import-Package: org.eclipse.core.runtime;version="[3.5.0,4.0.0)",
-  org.eclipse.e4.core.contexts;version="[1.6.0,2.0.0)",
-  org.eclipse.emfforms.bazaar;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)"
+ org.eclipse.e4.core.contexts;version="[1.6.0,2.0.0)",
+ org.eclipse.emfforms.bazaar;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.core.bazaar.tests/pom.xml b/tests/org.eclipse.emfforms.core.bazaar.tests/pom.xml
index 6ac6d93..c173136 100644
--- a/tests/org.eclipse.emfforms.core.bazaar.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.bazaar.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.bazaar.tests</artifactId>
diff --git a/tests/org.eclipse.emfforms.core.bazaar.tests/src/org/eclipse/emfforms/bazaar/internal/Bazaar_PTest.java b/tests/org.eclipse.emfforms.core.bazaar.tests/src/org/eclipse/emfforms/bazaar/internal/Bazaar_PTest.java
index 5730f39..ea39c9d 100644
--- a/tests/org.eclipse.emfforms.core.bazaar.tests/src/org/eclipse/emfforms/bazaar/internal/Bazaar_PTest.java
+++ b/tests/org.eclipse.emfforms.core.bazaar.tests/src/org/eclipse/emfforms/bazaar/internal/Bazaar_PTest.java
@@ -82,7 +82,7 @@
 		final IEclipseContext context = EclipseContextFactory.create();
 		// Add another value, otherwise, empty context is too fast
 		context.set(TESTSTRING, mock(Object.class));
-		assertTrue(doComparison(true, context));
+		doComparison(true, context);
 	}
 
 	@Test
@@ -90,15 +90,14 @@
 		final IEclipseContext context = EclipseContextFactory.create();
 		// Add another value, otherwise, empty context is too fast
 		context.set(VendorWithPrecondition.KEY, VendorWithPrecondition.VALUE);
-		assertTrue(doComparison(false, context));
+		doComparison(false, context);
 	}
 
 	/**
-	 *
-	 * @return if expectedTheWithPreConditionsBetter, true if that is the case. Otherwise true, if with precondition not
-	 *         more the 50% slower
+	 * If expectedTheWithPreConditionsBetter, asserts to true if that is the case.
+	 * Otherwise asserts to true, if with precondition is not more than 60% slower.
 	 */
-	public boolean doComparison(boolean expectedTheWithPreConditionsBetter, IEclipseContext context) {
+	private void doComparison(boolean expectedTheWithPreConditionsBetter, IEclipseContext context) {
 		final int iterations = 50000;
 		final Vendor<MyProduct> vendor = new VendorWithPrecondition();
 		bazaar.addVendor(vendor);
@@ -118,9 +117,15 @@
 		final long withoutPreConditions = System.currentTimeMillis() - currentTimeMillis;
 
 		if (expectedTheWithPreConditionsBetter) {
-			return withPreConditions < withoutPreConditions;
+			assertTrue(
+				String.format("The preCondition evaluation (%1$s ms) is slower then withoutPreCondition (%2$s ms)!", //$NON-NLS-1$
+					withPreConditions, withoutPreConditions),
+				withPreConditions < withoutPreConditions);
+		} else {
+			final double withoutPreConditionsSlack = 1.6 * withoutPreConditions;
+			assertTrue(String.format(
+				"The preCondition evaluation (%1$s ms) is slower then withoutPreCondition with 60%% slack (%2$s ms)!", //$NON-NLS-1$
+				withPreConditions, withoutPreConditionsSlack), withPreConditions < withoutPreConditionsSlack);
 		}
-		return 1.5 * withoutPreConditions > withPreConditions;
-
 	}
 }
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/META-INF/MANIFEST.MF
index f724a08..d20024b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Databinding Services Featurepath Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.featurepath.tests;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.databinding.featurepath;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.featurepath.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.featurepath;version="1.20.0";x-internal:=true
 Require-Bundle: 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)",
-  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.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)",
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)"
 Import-Package: org.osgi.framework;version="[1.1.0,2.0.0)"
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.featurepath.tests
 Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/pom.xml
index 9bff1ae..17c1158 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.databinding.featurepath.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.databinding.featurepath.tests</artifactId>
@@ -42,6 +42,6 @@
 		</plugins>
 	</build>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/META-INF/MANIFEST.MF
index 50dea34..b90fe62 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Index DMR Converter Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.index.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.index.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.databinding.index;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.index.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.index;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.index.tests
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0]"
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/pom.xml
index 79c0bcb..b7324d1 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.index.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.databinding.index.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.databinding.index.tests</artifactId>
@@ -27,5 +27,5 @@
 		</plugins>
 	</build>
 	<groupId>org.eclipse.emfforms</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/META-INF/MANIFEST.MF
index 21c67df..0804058 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Databinding Services Integration Test
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.integrationtest
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.core.services.databinding.integrationtest;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.databinding.integrationtest;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)"
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.2.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.integrationtest
 Import-Package: org.osgi.framework;version="[1.1.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/pom.xml
index 81f99aa..eaf69f1 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.databinding.integrationtest/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.databinding.integrationtest</artifactId>
@@ -52,5 +52,5 @@
 		</plugins>
 	</build>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/META-INF/MANIFEST.MF
index 4fa6de7..b30bdcf 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: KeyAttribute DMR Converter Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.keyattribute.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.keyattribute;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.keyattribute.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.keyattribute;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.keyattribute.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.keyattribute;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
  org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.keyattribute.tests
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/pom.xml
index a716dad..bf8f70b 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.databinding.keyattribute.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.databinding.keyattribute.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/META-INF/MANIFEST.MF
index 75dafcb..8c9a993 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Converter Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.mapping.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.databinding.mapping.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.databinding.mapping;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.databinding.mapping.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding.mapping;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.databinding.mapping.tests
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/pom.xml
index a089413..aaaef6f 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.databinding.mapping.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.databinding.mapping.tests</artifactId>
@@ -27,5 +27,5 @@
 		</plugins>
 	</build>
 	<groupId>org.eclipse.emfforms</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/META-INF/MANIFEST.MF
index 1534636..19d03a6 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.databinding.testmodel;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.core.services.databinding.testmodel.test.model;version="1.19.0",
- org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.core.services.databinding.testmodel.test.model.util;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.databinding.testmodel.test.model;version="1.20.0",
+ org.eclipse.emfforms.core.services.databinding.testmodel.test.model.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.databinding.testmodel.test.model.util;version="1.20.0";x-internal:=true
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.9.0,4.0.0)",
  org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/pom.xml b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/pom.xml
index b39ae87..0f5d9ba 100644
--- a/tests/org.eclipse.emfforms.core.services.databinding.testmodel/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.databinding.testmodel/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.databinding.testmodel</artifactId>
 	<packaging>eclipse-plugin</packaging>
 
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.datatemplate.test/AllTests for core.services.datatemplate.launch b/tests/org.eclipse.emfforms.core.services.datatemplate.test/AllTests for core.services.datatemplate.launch
new file mode 100644
index 0000000..300a7d1
--- /dev/null
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/AllTests for core.services.datatemplate.launch
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/core/services/datatemplate/test/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.core.services.datatemplate.test.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.core.services.datatemplate.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emfforms.core.services.datatemplate.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.datatemplate.test/META-INF/MANIFEST.MF
index 8f6e2f2..f44b4b3 100644
--- a/tests/org.eclipse.emfforms.core.services.datatemplate.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/META-INF/MANIFEST.MF
@@ -2,28 +2,28 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms DataTemplate Service Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.datatemplate.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.datatemplate;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emfforms.core.services.datatemplate;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: plugin
-Export-Package: org.eclipse.emfforms.core.services.datatemplate.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.core.services.datatemplate.test.model.audit;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.core.services.datatemplate.test.model.audit.impl;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.core.services.datatemplate.test.model.audit.util;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.datatemplate;version="1.19.0";x-internal:=true
+Export-Package: org.eclipse.emfforms.core.services.datatemplate.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.datatemplate.test.model.audit;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.datatemplate.test.model.audit.impl;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.core.services.datatemplate.test.model.audit.util;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.datatemplate;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)",
-  org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.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)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.emfforms.core.services.datatemplate.test
 Import-Package: org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.swt.widgets;version="0.0.0"
diff --git a/tests/org.eclipse.emfforms.core.services.datatemplate.test/pom.xml b/tests/org.eclipse.emfforms.core.services.datatemplate.test/pom.xml
index 8e2f499..8e7bb03 100644
--- a/tests/org.eclipse.emfforms.core.services.datatemplate.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.datatemplate.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard_PTest.java b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard_PTest.java
index 4aa4575..da1705b 100644
--- a/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard_PTest.java
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/SelectSubclassAndTemplateWizard_PTest.java
@@ -34,14 +34,11 @@
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTException;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.swt.widgets.TreeItem;
 import org.junit.After;
@@ -161,7 +158,7 @@
 		assertEquals(2, subClassTable.getItemCount());
 
 		// Select the registered user class
-		final TreeItem item = selectTreeItem(subClassTable, 1);
+		final TreeItem item = SWTTestUtil.selectTreeItem(subClassTable, 1);
 		SWTTestUtil.waitForUIThread();
 		assertEquals("RegisteredUser", item.getText()); //$NON-NLS-1$
 
@@ -182,7 +179,7 @@
 
 		// the two templates for the registered user
 		assertEquals(2, templateTable.getItemCount());
-		selectTableItem(templateTable, 0);
+		SWTTestUtil.selectTableItem(templateTable, 0);
 		SWTTestUtil.waitForUIThread();
 
 		// Finish
@@ -250,7 +247,7 @@
 		final Table templateTable = (Table) templateSelectionPageComposite.getChildren()[2];
 
 		assertEquals(2, templateTable.getItemCount());
-		selectTableItem(templateTable, 0);
+		SWTTestUtil.selectTableItem(templateTable, 0);
 		SWTTestUtil.waitForUIThread();
 
 		// Finish
@@ -312,7 +309,7 @@
 		assertEquals(2, subClassTree.getItemCount());
 
 		// Select the guest user class
-		final TreeItem item = selectTreeItem(subClassTree, 1);
+		final TreeItem item = SWTTestUtil.selectTreeItem(subClassTree, 1);
 		SWTTestUtil.waitForUIThread();
 		assertEquals("GuestUser", item.getText()); //$NON-NLS-1$
 
@@ -385,7 +382,7 @@
 		assertEquals(2, subClassTable.getItemCount());
 
 		// Select the admin user class
-		selectTreeItem(subClassTable, 0);
+		SWTTestUtil.selectTreeItem(subClassTable, 0);
 
 		SWTTestUtil.waitForUIThread();
 
@@ -404,7 +401,7 @@
 		SWTTestUtil.clickButton(backButton);
 
 		// Select guest user class and click next again
-		selectTreeItem(subClassTable, 1);
+		SWTTestUtil.selectTreeItem(subClassTable, 1);
 		SWTTestUtil.waitForUIThread();
 		assertTrue(nextButton.isEnabled());
 		SWTTestUtil.clickButton(nextButton);
@@ -415,7 +412,7 @@
 		assertTrue(templateTable.getItem(0).getText().contains("GuestUserTemplate1")); //$NON-NLS-1$
 		assertTrue(templateTable.getItem(1).getText().contains("GuestUserTemplate2")); //$NON-NLS-1$
 
-		selectTableItem(templateTable, 1);
+		SWTTestUtil.selectTableItem(templateTable, 1);
 		SWTTestUtil.clickButton(finishButton);
 		SWTTestUtil.waitForUIThread();
 
@@ -478,7 +475,7 @@
 
 		// Select a template
 		assertEquals(2, templateTable.getItemCount());
-		selectTableItem(templateTable, 0);
+		SWTTestUtil.selectTableItem(templateTable, 0);
 		SWTTestUtil.waitForUIThread();
 
 		// Cancel after a template was selected
@@ -530,35 +527,6 @@
 	}
 
 	/**
-	 * Selects the index in the given table and notifies the table's listeners about the selection
-	 *
-	 * @param table
-	 * @param index
-	 * @return the selected table item
-	 */
-	private TreeItem selectTreeItem(Tree tree, int index) {
-		tree.setSelection(tree.getItem(index));
-		final Event event = new Event();
-		event.type = SWT.Selection;
-		event.widget = tree;
-		final TreeItem result = tree.getItem(index);
-		event.item = result;
-		tree.notifyListeners(SWT.Selection, event);
-		return result;
-	}
-
-	private TableItem selectTableItem(Table table, int index) {
-		table.setSelection(index);
-		final Event event = new Event();
-		event.type = SWT.Selection;
-		event.widget = table;
-		final TableItem result = table.getItem(index);
-		event.item = result;
-		table.notifyListeners(SWT.Selection, event);
-		return result;
-	}
-
-	/**
 	 * Open the wizard in a wizard dialog and wait for the UI to finish opening it.
 	 *
 	 * @param wizard The wizard to open
diff --git a/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider_Test.java b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider_Test.java
index 71424d3..bcdccb5 100644
--- a/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider_Test.java
+++ b/tests/org.eclipse.emfforms.core.services.datatemplate.test/src/org/eclipse/emfforms/internal/core/services/datatemplate/TemplateCreateNewModelElementStrategyProvider_Test.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,17 +8,24 @@
  *
  * Contributors:
  * Lucas Koehler - initial API and implementation
+ * Christian W. Damus - bug 543461
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.datatemplate;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anySetOf;
 import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.inOrder;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -29,8 +36,14 @@
 import java.util.Set;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.common.spi.Labelizer;
 import org.eclipse.emf.ecp.ui.view.swt.reference.CreateNewModelElementStrategy;
 import org.eclipse.emf.ecp.ui.view.swt.reference.EClassSelectionStrategy;
 import org.eclipse.emfforms.bazaar.Bid;
@@ -42,6 +55,8 @@
 import org.eclipse.emfforms.core.services.datatemplate.test.model.audit.AuditPackage;
 import org.eclipse.emfforms.datatemplate.DataTemplateFactory;
 import org.eclipse.emfforms.datatemplate.Template;
+import org.hamcrest.CustomTypeSafeMatcher;
+import org.hamcrest.Matcher;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.InOrder;
@@ -127,17 +142,60 @@
 	}
 
 	/**
-	 * Simply test that a non-null strategy is created. The strategy's behavior is tested in separate test cases.
+	 * Test creation of the strategy and its implementation of consistency of classes
+	 * presented to the user with available templates.
+	 *
+	 * @see <a href="http://eclip.se/543461">bug 543461</a>
 	 */
 	@Test
-	public void testCreateNewModelELementStrategy() {
+	public void testCreateNewModelElementStrategy() {
+		final TemplateProvider provider = mock(TemplateProvider.class);
+		when(provider.canProvideTemplates(any(EObject.class), any(EReference.class))).thenReturn(true);
+
+		final LinkedHashSet<Template> templates = new LinkedHashSet<Template>();
+		final EDataType datatype = EcoreFactory.eINSTANCE.createEDataType();
+		datatype.setName("Date"); //$NON-NLS-1$
+		final Template dtTemplate = DataTemplateFactory.eINSTANCE.createTemplate();
+		dtTemplate.setInstance(datatype);
+		dtTemplate.setName("Example DataType"); //$NON-NLS-1$
+		templates.add(dtTemplate);
+		final EEnum enum_ = EcoreFactory.eINSTANCE.createEEnum();
+		enum_.setName("YesNo"); //$NON-NLS-1$
+		final Template enTemplate = DataTemplateFactory.eINSTANCE.createTemplate();
+		enTemplate.setInstance(enum_);
+		enTemplate.setName("Example Enum"); //$NON-NLS-1$
+		templates.add(enTemplate);
+		when(provider.provideTemplates(any(EObject.class), any(EReference.class))).thenReturn(templates);
+		strategyProvider.registerTemplateProvider(provider);
+
 		final ComponentContext componentContext = mock(ComponentContext.class);
 		when(componentContext.getProperties()).thenReturn(new Hashtable<String, Object>());
 
 		strategyProvider.activate(componentContext);
 
 		final CreateNewModelElementStrategy strategy = strategyProvider.createCreateNewModelElementStrategy();
-		assertNotNull(strategy);
+		assertThat(strategy, instanceOf(TemplateCreateNewModelElementStrategyProvider.Strategy.class));
+
+		// Spy on the implementation to verify internals
+		final TemplateCreateNewModelElementStrategyProvider.Strategy spy = spy(
+			(TemplateCreateNewModelElementStrategyProvider.Strategy) strategy);
+
+		// Mustn't actually try to show a wizard dialog
+		doReturn(Optional.of(dtTemplate)).when(spy)
+			.showSelectModelInstancesDialog(anySetOf(EClass.class), anySetOf(Template.class));
+
+		final Optional<EObject> created = spy.createNewModelElement(AuditPackage.eINSTANCE,
+			EcorePackage.Literals.EPACKAGE__ECLASSIFIERS);
+		assertThat("Nothing created", created.isPresent(), is(true)); //$NON-NLS-1$
+		assertThat("Wrong thing created", created.get(), eEqualTo(datatype)); //$NON-NLS-1$
+
+		// Verify invocation of the wizard, that it didn't offer classes for which there
+		// weren't any templates
+		final Set<EClass> subClasses = new LinkedHashSet<>();
+		subClasses.add(EcorePackage.Literals.EDATA_TYPE);
+		subClasses.add(EcorePackage.Literals.EENUM);
+		// not EcorePackage.Literals.ECLASS
+		Mockito.verify(spy).showSelectModelInstancesDialog(subClasses, templates);
 	}
 
 	@Test
@@ -233,4 +291,14 @@
 			return strategy;
 		}
 	}
+
+	Matcher<EObject> eEqualTo(EObject other) {
+		return new CustomTypeSafeMatcher<EObject>("structurally equal to " + Labelizer.get(other).getLabel(other)) { //$NON-NLS-1$
+			@Override
+			protected boolean matchesSafely(EObject item) {
+				return EcoreUtil.equals(item, other);
+			}
+		};
+	}
+
 }
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/META-INF/MANIFEST.MF
index dfeea5d..c0321f4 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Default Domain Expander Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.default.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.defaultheuristic.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.defaultheuristic.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.defaultheuristic;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.default.tests
 Import-Package: org.osgi.framework;version="1.3.0"
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/pom.xml
index e7775a8..a0bf7a7 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.default.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.domainexpander.default.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/META-INF/MANIFEST.MF
index 60dd5ba..943cbfe 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Index DMR Expander Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.index.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.index.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.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)"
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.index.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.index;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.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)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.index.tests
 Import-Package: org.osgi.framework;version="1.3.0"
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/pom.xml
index af82af2..231ad10 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.index.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.domainexpander.index.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/META-INF/MANIFEST.MF
index 62464d0..7216ab2 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: KeyAttribute DMR Expander Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.keyattribute;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.keyattribute;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.keyattribute;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/pom.xml
index 29470a3..15006f1 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.domainexpander.keyattribute.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/META-INF/MANIFEST.MF
index d3cad8a..1e4cb50 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Mapping DMR Expander Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.domainexpander.mapping.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.domainexpander.mapping.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.domainexpander.mapping;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.domainexpander.mapping.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.domainexpander.mapping;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.domainexpander.mapping.tests
 Import-Package: org.osgi.framework;version="1.3.0"
diff --git a/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/pom.xml
index bc2215b..e20f6e0 100644
--- a/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.domainexpander.mapping.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.domainexpander.mapping.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.emf.tests/META-INF/MANIFEST.MF
index 50fcee1..3a92cfc 100644
--- a/tests/org.eclipse.emfforms.core.services.emf.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Service EMF Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.emf.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.emf;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.emf.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.databinding;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.label;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.emf;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.emf.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.databinding;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.label;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.objenesis;bundle-version="[1.0.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.emf.tests
diff --git a/tests/org.eclipse.emfforms.core.services.emf.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.emf.tests/pom.xml
index e9c1d70..97bc8c7 100644
--- a/tests/org.eclipse.emfforms.core.services.emf.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.emf.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.emf.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.legacy.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.legacy.tests/META-INF/MANIFEST.MF
index 1e73d72..ac4763f 100644
--- a/tests/org.eclipse.emfforms.core.services.legacy.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.legacy.tests/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services Legacy Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.legacy.tests;singleton:=true
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.legacy;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.legacy.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.legacy;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.legacy;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.legacy.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.legacy;version="1.20.0";x-internal:=true
 Require-Bundle: 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.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.legacy.tests
-Import-Package: org.eclipse.emfforms.common;version="[1.19.0,1.20.0)",
-  org.osgi.framework;version="[1.3.0,2.0.0)"
+Import-Package: org.eclipse.emfforms.common;version="[1.20.0,1.21.0)",
+ org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.core.services.legacy.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.legacy.tests/pom.xml
index 51c055b..e67bda0 100644
--- a/tests/org.eclipse.emfforms.core.services.legacy.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.legacy.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.legacy.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/META-INF/MANIFEST.MF
index 9ebce93..dce1877 100644
--- a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Mapping Provider Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.mappingprovider.table.panel.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.mappingprovider.table.panel;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.mappingprovider.table.panel.test
diff --git a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/pom.xml b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/pom.xml
index 38cca1a..90e665c 100644
--- a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.panel.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.mappingprovider.table.panel.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/META-INF/MANIFEST.MF
index 650e63f..4deb4d4 100644
--- a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Mapping Provider Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.mappingprovider.table.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.mappingprovider.table;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.core.services.mappingprovider.table;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.mappingprovider.table.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.mappingprovider.table;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.mappingprovider.table.test
diff --git a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/pom.xml b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/pom.xml
index 0d852c9..bf9d631 100644
--- a/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.mappingprovider.table.test/pom.xml
@@ -6,11 +6,11 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.mappingprovider.table.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 </project>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/META-INF/MANIFEST.MF
index ed80796..3b9b5f0 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Core Services for Featurepath Segments Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.featurepath.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emfforms.core.services.segments.featurepath;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.featurepath.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.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)"
-Import-Package: org.osgi.framework;version="0.0.0"
-Export-Package: org.eclipse.emfforms.core.services.segments.featurepath.test;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.featurepath;version="1.19.0";x-internal:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.featurepath.test
+Import-Package: org.osgi.framework;version="0.0.0"
diff --git a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/pom.xml b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/pom.xml
index b884e9c..4850941 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.segments.featurepath.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.segments.featurepath.test</artifactId>
 	<packaging>eclipse-test-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.index.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.segments.index.test/META-INF/MANIFEST.MF
index 70445d6..3fe3465 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.index.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.segments.index.test/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Core Services for Index Segments Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.index.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Fragment-Host: org.eclipse.emfforms.core.services.segments.index;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.index.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.index;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.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.emfforms.core.services.segments.index.test;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.index;version="1.19.0";x-internal:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.index.test
diff --git a/tests/org.eclipse.emfforms.core.services.segments.index.test/pom.xml b/tests/org.eclipse.emfforms.core.services.segments.index.test/pom.xml
index 24d9ee9..a67c443 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.index.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.segments.index.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.segments.index.test</artifactId>
 	<packaging>eclipse-test-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.mapping.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.segments.mapping.test/META-INF/MANIFEST.MF
index b16707d..df0b046 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.mapping.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.segments.mapping.test/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Mapping Segment Services Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.mapping.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.19.0,1.20.0)"
-Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.mapping.test
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Fragment-Host: org.eclipse.emfforms.core.services.segments.mapping;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.mapping.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.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)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.mapping.test;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.mapping;version="1.19.0";x-internal:=true
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.mapping.test
diff --git a/tests/org.eclipse.emfforms.core.services.segments.mapping.test/pom.xml b/tests/org.eclipse.emfforms.core.services.segments.mapping.test/pom.xml
index 908df49..8024182 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.mapping.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.segments.mapping.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.segments.mapping.test</artifactId>
 	<packaging>eclipse-test-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.multi.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.segments.multi.test/META-INF/MANIFEST.MF
index a069a40..1217f23 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.multi.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.segments.multi.test/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Multi Segment Services Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.multi.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.segments.multi;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.segments.multi;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.multi.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments.multi;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)",
- org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.multi.test;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments.multi;version="1.19.0";x-internal:=true
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.multi.test
diff --git a/tests/org.eclipse.emfforms.core.services.segments.multi.test/pom.xml b/tests/org.eclipse.emfforms.core.services.segments.multi.test/pom.xml
index 5500766..6a2ef78 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.multi.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.segments.multi.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<artifactId>org.eclipse.emfforms.core.services.segments.multi.test</artifactId>
 	<packaging>eclipse-test-plugin</packaging>
 	<groupId>org.eclipse.emf.ecp</groupId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.core.services.segments.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.segments.test/META-INF/MANIFEST.MF
index 01f6611..e769e95 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.segments.test/META-INF/MANIFEST.MF
@@ -1,15 +1,15 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.test
-Bundle-Version: 1.19.0.qualifier
-Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.segments;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Name: EMFForms Services for DMR Segments Tests
+Bundle-SymbolicName: org.eclipse.emfforms.core.services.segments.test
+Bundle-Version: 1.20.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Fragment-Host: org.eclipse.emfforms.core.services.segments;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.segments.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.segments;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)",
- org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.segments.test;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.segments;version="1.19.0";x-internal:=true
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.segments.test
diff --git a/tests/org.eclipse.emfforms.core.services.segments.test/pom.xml b/tests/org.eclipse.emfforms.core.services.segments.test/pom.xml
index 5b21180..0c2860f 100644
--- a/tests/org.eclipse.emfforms.core.services.segments.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.segments.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.segments.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/META-INF/MANIFEST.MF
index e8f1953..a4e4dd9 100644
--- a/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Key Attribute Structural Change Tester Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services.structuralchange.keyattribute;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services.structuralchange.keyattribute;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.structuralchange.keyattribute;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.common;bundle-version="[2.11.0,3.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.common;bundle-version="[2.11.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests
diff --git a/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/pom.xml
index 46d0037..f104ad5 100644
--- a/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.structuralchange.keyattribute.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.structuralchange.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.structuralchange.test/META-INF/MANIFEST.MF
index a8d1312..fc740b8 100644
--- a/tests/org.eclipse.emfforms.core.services.structuralchange.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.structuralchange.test/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Test
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.structuralchange.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Fragment-Host: org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.core.services.structuralchange.test;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.structuralchange;version="1.20.0";x-internal:=true
 Require-Bundle: org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
  org.objenesis;bundle-version="[1.0.0,2.0.0)",
  org.junit;bundle-version="[4.12.0,5.0.0)",
- org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,2.0.0)"
-Import-Package: org.osgi.framework;version="0.0.0"
-Export-Package: org.eclipse.emfforms.core.services.structuralchange.test;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.internal.core.services.structuralchange;version="1.19.0";x-internal:=true
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.structuralchange.test
+Import-Package: org.osgi.framework;version="0.0.0"
diff --git a/tests/org.eclipse.emfforms.core.services.structuralchange.test/pom.xml b/tests/org.eclipse.emfforms.core.services.structuralchange.test/pom.xml
index f28806a..c985845 100644
--- a/tests/org.eclipse.emfforms.core.services.structuralchange.test/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.structuralchange.test/pom.xml
@@ -1,4 +1,3 @@
-
 <?xml version="1.0" encoding="UTF-8"?>
 <project
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
@@ -7,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.structuralchange.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.tests/AllIntegrationTests core.services.launch b/tests/org.eclipse.emfforms.core.services.tests/AllIntegrationTests core.services.launch
index 0cbd6bc..8a8b616 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/AllIntegrationTests core.services.launch
+++ b/tests/org.eclipse.emfforms.core.services.tests/AllIntegrationTests core.services.launch
@@ -24,6 +24,7 @@
 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.internal.core.services.tests.AllIntegrationTests"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
@@ -32,8 +33,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.emf.cdo.explorer.ui.product"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.felix.scr@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.observable*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.observable*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.property*1.5.0.v20150422-0725@default:default,org.eclipse.core.databinding.property*1.6.100.v20170515-1119@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services.tests@default:false,org.eclipse.emfforms.core.services@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.felix.scr@1:true,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emfforms.core.services.tests@default:false,org.eclipse.emfforms.core.services@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emfforms.core.services.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.core.services.tests/META-INF/MANIFEST.MF
index abdee0c..3f75916 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.core.services.tests/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Core Services Tests
 Bundle-SymbolicName: org.eclipse.emfforms.core.services.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.core.services.scoped;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.core.services.tests;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.core.services.scoped;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.core.services.tests;version="1.20.0";x-internal:=true
 Require-Bundle: 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.eclipse.equinox.ds;bundle-version="[1.4.300,2.0.0)",
-  org.objenesis;bundle-version="1.0.0"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.equinox.ds;bundle-version="[1.4.300,2.0.0)",
+ org.objenesis;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.core.services.tests
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.core.services.tests/pom.xml b/tests/org.eclipse.emfforms.core.services.tests/pom.xml
index 6faddf9..fc627a2 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.core.services.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.core.services.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/SettingToControlMapper_ITest.java b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/SettingToControlMapper_ITest.java
index d9e6013..6304ed5 100644
--- a/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/SettingToControlMapper_ITest.java
+++ b/tests/org.eclipse.emfforms.core.services.tests/src/org/eclipse/emfforms/internal/core/services/scoped/SettingToControlMapper_ITest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2017 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,18 +8,25 @@
  *
  * Contributors:
  * Edgar Mueller - initial API and implementation
+ * Christian W. Damus - bug 543190
  ******************************************************************************/
 package org.eclipse.emfforms.internal.core.services.scoped;
 
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.isA;
 import static org.mockito.Matchers.same;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -28,6 +35,7 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
+import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EcoreFactory;
@@ -40,6 +48,7 @@
 import org.eclipse.emf.ecp.view.spi.model.VView;
 import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
 import org.eclipse.emfforms.internal.core.services.controlmapper.SettingToControlMapperImpl;
+import org.eclipse.emfforms.spi.core.services.controlmapper.SubControlMapper;
 import org.eclipse.emfforms.spi.core.services.mappingprovider.EMFFormsMappingProviderManager;
 import org.junit.Before;
 import org.junit.Test;
@@ -67,7 +76,7 @@
 		context = new FakeViewContext(domainObject, view);
 
 		mappingManager = mock(EMFFormsMappingProviderManager.class);
-		when(mappingManager.getAllSettingsFor(any(VDomainModelReference.class), any(EObject.class)))
+		when(mappingManager.getAllSettingsFor(any(VDomainModelReference.class), isA(EClass.class)))
 			.then(new Answer<Set<UniqueSetting>>() {
 
 				@Override
@@ -315,4 +324,57 @@
 		assertEquals(1, controlsForParentSetting.size());
 		assertTrue(controlsForParentSetting.contains(control));
 	}
+
+	/**
+	 * Test case for {@link SubControlMapper#getEObjectsWithSettings(VElement)} implementation.
+	 */
+	@Test
+	@SuppressWarnings("nls")
+	public void getEObjectsWithSettings_VElement() {
+		// Create a child view for the EClass showing the name of its ID attribute
+		// and the name of that ID attribute's type. These are two objects, one
+		// contained and one not, that are presented by the child context
+		final VView childView = VViewFactory.eINSTANCE.createView();
+		final VControl attributeControl = VViewFactory.eINSTANCE.createControl();
+		attributeControl.setDomainModelReference(EcorePackage.Literals.ENAMED_ELEMENT__NAME);
+		childView.getChildren().add(attributeControl);
+		final VControl isIdControl = VViewFactory.eINSTANCE.createControl();
+		isIdControl.setDomainModelReference(EcorePackage.Literals.EATTRIBUTE__ID);
+		childView.getChildren().add(isIdControl); // This one doesn't add anything interesting
+		final VControl typeNameControl = VViewFactory.eINSTANCE.createControl();
+		typeNameControl.setDomainModelReference(EcorePackage.Literals.ENAMED_ELEMENT__NAME,
+			Arrays.asList(EcorePackage.Literals.EATTRIBUTE__EATTRIBUTE_TYPE));
+		childView.getChildren().add(typeNameControl);
+
+		final EAttribute idAttribute = EcoreFactory.eINSTANCE.createEAttribute();
+		idAttribute.setName("id");
+		idAttribute.setID(true);
+		idAttribute.setEType(EcorePackage.Literals.ESTRING);
+		((EClass) domainObject).getEStructuralFeatures().add(idAttribute);
+
+		// Update mocking for the new DMRs
+		when(mappingManager.getAllSettingsFor(attributeControl.getDomainModelReference(),
+			idAttribute))
+				.thenReturn(set(UniqueSetting.createSetting(idAttribute, EcorePackage.Literals.ENAMED_ELEMENT__NAME)));
+		when(mappingManager.getAllSettingsFor(isIdControl.getDomainModelReference(),
+			idAttribute))
+				.thenReturn(
+					set(UniqueSetting.createSetting(idAttribute, EcorePackage.Literals.EATTRIBUTE__EATTRIBUTE_TYPE)));
+		when(mappingManager.getAllSettingsFor(typeNameControl.getDomainModelReference(),
+			idAttribute))
+				.thenReturn(set(UniqueSetting.createSetting(EcorePackage.Literals.ESTRING,
+					EcorePackage.Literals.ENAMED_ELEMENT__NAME)));
+
+		final FakeViewContext childContext = new FakeViewContext(idAttribute, childView);
+		context.addChildContext(control, childContext);
+		final Collection<EObject> objects = mapper.getEObjectsWithSettings(childView);
+		assertThat("Wrong number of objects in child context", objects.size(), is(2));
+		assertThat(objects, hasItems(idAttribute, EcorePackage.Literals.ESTRING));
+	}
+
+	@SafeVarargs
+	static <T> Set<T> set(T... elements) {
+		return new LinkedHashSet<>(Arrays.asList(elements));
+	}
+
 }
diff --git a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/META-INF/MANIFEST.MF
index 34f8278..5fc9a07 100644
--- a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: DataTemplate Tests
 Bundle-SymbolicName: org.eclipse.emfforms.datatemplate.tooling.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.datatemplate.tooling;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.datatemplate.tooling;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.datatemplate.tooling.editor;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.datatemplate.tooling.wizard;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.objenesis;version="1.0.0"
 Automatic-Module-Name: org.eclipse.emfforms.datatemplate.tooling.tests
+Import-Package: org.objenesis;version="1.0.0"
diff --git a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/pom.xml b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/pom.xml
index f06449b..a8a2905 100644
--- a/tests/org.eclipse.emfforms.datatemplate.tooling.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.datatemplate.tooling.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.datatemplate.tooling.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditorFullRender_PTest.launch b/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditorFullRender_PTest.launch
new file mode 100644
index 0000000..5213a85
--- /dev/null
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/EcoreEditorFullRender_PTest.launch
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="true"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorFullRender_PTest.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.spi.editor.EcoreEditorFullRender_PTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.editor.ecore.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.scr@1:true,org.apache.log4j@default:default,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.apache.xmlgraphics@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.100.v20181030-1443@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.linux.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help.base@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.urischeme@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.di@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.validation@default:default,org.eclipse.emf.ecp.view.categorization.model.edit@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.categorization.swt@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.control.multireference@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.di@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.edit@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model.nl_de@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.treemasterdetail.ui.swt@default:default,org.eclipse.emf.ecp.view.treemasterdetail.validation@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table.panel@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.segments.featurepath@default:default,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments.multi@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.editor.ecore.test@default:false,org.eclipse.emfforms.editor.ecore@default:default,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.setup.base@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di.tests@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model@default:default,org.eclipse.platform@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.editor.ecore.test/META-INF/MANIFEST.MF
index 8fc3540..5bf54c1 100644
--- a/tests/org.eclipse.emfforms.editor.ecore.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/META-INF/MANIFEST.MF
@@ -2,57 +2,61 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms Ecore Editor Test
 Bundle-SymbolicName: org.eclipse.emfforms.editor.ecore.test;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.editor;bundle-version="[1.19.0,1.20.0)"
+Fragment-Host: org.eclipse.emfforms.editor;bundle-version="[1.20.0,1.21.0)"
 Export-Package: org.eclipse.emfforms.spi.editor;version="0.0.0"
 Require-Bundle: org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emfforms.editor.ecore;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
-  org.eclipse.emf.ecp.edit.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
-  org.eclipse.ui.workbench;bundle-version="[3.106.0,4.0.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
-  org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.emf.ecp.view.group.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
-  org.eclipse.emf.ecp.view.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.common.ui;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.setup.base;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.common.validation;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.19.0,1.20.0)"
+ org.junit;bundle-version="[4.11.0,5.0.0)",
+ org.eclipse.emfforms.editor.ecore;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)",
+ org.eclipse.emf.ecp.edit.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.jface.databinding;bundle-version="[1.6.0,2.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.ui.ide;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.jface;bundle-version="[3.10.0,4.0.0)",
+ org.eclipse.ui.workbench;bundle-version="[3.106.0,4.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.editsupport;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.databinding.edit;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.control.multireference;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.util.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.emf.ecp.view.group.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.treemasterdetail.decorator.validation.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.emf.ecp.view.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.common.ui;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.plugin;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.setup.base;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.xmi;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.table.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.common.validation;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.mappingprovider.table.panel;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swtbot.junit4_x;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.editor.ecore.test
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emfforms.bazaar;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spi.swt.core.di;version="[1.19.0,1.20.0)";resolution:=optional,
-  org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
+ org.eclipse.emfforms.bazaar;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.internal.editor.ecore.controls;version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spi.swt.core.di;version="[1.20.0,1.21.0)";resolution:=optional,
+ org.osgi.service.component.annotations;version="[1.2.0,2.0.0)";resolution:=optional
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/data/shortcut_delete.ecore b/tests/org.eclipse.emfforms.editor.ecore.test/data/shortcut_delete.ecore
new file mode 100644
index 0000000..b85ac94
--- /dev/null
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/data/shortcut_delete.ecore
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="package" nsURI="http://www.eclipse.org/ecp/2018/test" nsPrefix="test">
+  <eClassifiers xsi:type="ecore:EClass" name="TestClass"/>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/pom.xml b/tests/org.eclipse.emfforms.editor.ecore.test/pom.xml
index 496f2ee..8ae5e08 100644
--- a/tests/org.eclipse.emfforms.editor.ecore.test/pom.xml
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.editor.ecore.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorFullRender_PTest.java b/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorFullRender_PTest.java
new file mode 100644
index 0000000..dfb09c0
--- /dev/null
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorFullRender_PTest.java
@@ -0,0 +1,168 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 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:
+ * Lucas Koehler - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.editor;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
+import org.eclipse.emfforms.internal.editor.ecore.EcoreEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.keyboard.Keystrokes;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests for the {@link EcoreEditor}.
+ * This plugin is a fragment of the <b>org.eclipse.emfforms.editor</b> bundle, containing the {@link GenericEditor}
+ * class, although we are testing content from the <b>org.eclipse.emfforms.editor.ecore</b> bundle. The reason for
+ * this is that we need to call protected methods from the {@link GenericEditor}, which would not be possible otherwise.
+ * <p>
+ * In contrast to {@link EcoreEditor_PTest}, these tests fully render the editor without mocking parts of it or the IDE
+ * environment.
+ *
+ * @author Lucas Koehler
+ *
+ */
+@SuppressWarnings("restriction")
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EcoreEditorFullRender_PTest {
+
+	@After
+	public void closeAllEditors() {
+		assertTrue(getActivePage().closeAllEditors(false));
+		SWTTestUtil.waitForUIThread();
+	}
+
+	@Test
+	public void shortcuts_tree_delete() {
+		final EcoreEditor editor = open("shortcut_delete.ecore", EcoreEditor.class); //$NON-NLS-1$
+		SWTTestUtil.waitForUIThread();
+		final Composite parent = editor.getRootView();
+		final Tree tree = SWTTestUtil.findControl(parent, 0, Tree.class);
+		final TreeItem packageItem = tree.getItem(0).getItem(0);
+		final TreeItem toDeleteItem = packageItem.getItem(0);
+		final SWTBot bot = new SWTBot(parent);
+
+		SWTTestUtil.selectTreeItem(toDeleteItem);
+		SWTTestUtil.waitForUIThread();
+		bot.tree().pressShortcut(Keystrokes.DELETE);
+		SWTTestUtil.waitForUIThread();
+		tree.update();
+		SWTTestUtil.waitForUIThread();
+
+		assertEquals("EPackage tree node children after delete", 0, packageItem.getItemCount()); //$NON-NLS-1$
+		final Resource ecoreResource = editor.getResourceSet().getResources().get(0);
+		final EPackage ePackage = (EPackage) ecoreResource.getContents().get(0);
+		assertEquals("EPackage children after delete", 0, ePackage.getEClassifiers().size()); //$NON-NLS-1$
+	}
+
+	/** Expectation: When the focus is on the detail view, no tree node must be deleted if the DEL key is pressed. */
+	@Test
+	public void shortcuts_detail_noDelete() {
+		final EcoreEditor editor = open("shortcut_delete.ecore", EcoreEditor.class); //$NON-NLS-1$
+		SWTTestUtil.waitForUIThread();
+		final Composite parent = editor.getRootView();
+		final Tree tree = SWTTestUtil.findControl(parent, 0, Tree.class);
+		final TreeItem packageItem = tree.getItem(0).getItem(0);
+		final TreeItem toNotDeleteItem = packageItem.getItem(0);
+		final SWTBot bot = new SWTBot(parent);
+
+		tree.setFocus();
+		SWTTestUtil.selectTreeItem(toNotDeleteItem);
+		SWTTestUtil.waitForUIThread();
+		// Make sure the detail is re-rendered
+		SWTTestUtil.pressAndReleaseKey(tree, SWT.LF);
+		parent.update();
+		SWTTestUtil.waitForUIThread();
+
+		bot.checkBox().pressShortcut(Keystrokes.DELETE);
+		tree.update();
+		SWTTestUtil.waitForUIThread();
+
+		assertEquals("EPackage tree node children after pressing DEL in the detail", 1, packageItem.getItemCount()); //$NON-NLS-1$
+		final Resource ecoreResource = editor.getResourceSet().getResources().get(0);
+		final EPackage ePackage = (EPackage) ecoreResource.getContents().get(0);
+		assertEquals("EPackage children after pressing DEL in the detail", 1, ePackage.getEClassifiers().size()); //$NON-NLS-1$
+	}
+
+	// Test Infrastructure to open editors
+
+	<P extends IEditorPart> P open(String resourcePath, Class<P> expectedType) {
+		final URI resourceURI = testResourceURI(resourcePath);
+		final URIEditorInput input = new URIEditorInput(resourceURI);
+
+		return open(input, expectedType);
+	}
+
+	<P extends IEditorPart> P open(IEditorInput input, Class<P> expectedType) {
+		IEditorPart result = null;
+
+		try {
+			result = getActivePage().openEditor(input, "EcoreEditor"); //$NON-NLS-1$
+		} catch (final PartInitException e) {
+			// It's okay if we are expecting it
+			result = getEditor(input);
+		}
+
+		return expectedType.cast(result);
+	}
+
+	static URI testResourceURI(String resourcePath) {
+		return URI.createURI(
+			String.format("platform:/fragment/org.eclipse.emfforms.editor.ecore.test/data/%s", resourcePath), //$NON-NLS-1$
+			true);
+	}
+
+	static IWorkbenchPage getActivePage() {
+		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+	}
+
+	static IEditorPart getEditor(IEditorInput input) {
+		final IEditorReference[] editorReferences = getActivePage().getEditorReferences();
+		for (final IEditorReference editorReference : editorReferences) {
+			if (input.equals(safeGetEditorInput(editorReference))) {
+				final IEditorPart editor = editorReference.getEditor(false);
+				if (editor != null) {
+					return editor;
+				}
+			}
+		}
+		return null;
+	}
+
+	static IEditorInput safeGetEditorInput(IEditorReference reference) {
+		try {
+			return reference.getEditorInput();
+		} catch (final PartInitException e) {
+			fail("Could not get editor input from editor reference: " + e.getMessage()); //$NON-NLS-1$
+			return null; // Unreachable
+		}
+	}
+}
diff --git a/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorPerformance_PTest.java b/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorPerformance_PTest.java
index 577ac8c..5cb9c1d 100644
--- a/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorPerformance_PTest.java
+++ b/tests/org.eclipse.emfforms.editor.ecore.test/src/org/eclipse/emfforms/spi/editor/EcoreEditorPerformance_PTest.java
@@ -21,10 +21,10 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Random;
+import java.util.function.Consumer;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
@@ -55,6 +55,7 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.test.common.PerformanceClock;
 import org.eclipse.emf.ecp.view.spi.common.callback.ViewModelPropertiesUpdateCallback;
 import org.eclipse.emf.ecp.view.spi.model.VViewModelProperties;
 import org.eclipse.emf.ecp.view.spi.validation.ValidationProvider;
@@ -146,17 +147,13 @@
 	@TestResource(value = { "template.ecore", "template.ecore" }, //
 		generator = { EcoreGen.class, EcoreGen.class })
 	public void addElement() {
-		test(new Experiment() {
+		test(filePath -> {
+			final GenericEditor editor = open(filePath);
 
-			@Override
-			public void test(String filePath) {
-				final GenericEditor editor = open(filePath);
+			final EClassifier newEClassifier = addEClassifier(editor);
+			reveal(editor, newEClassifier);
 
-				final EClassifier newEClassifier = addEClassifier(editor);
-				reveal(editor, newEClassifier);
-
-				close(editor);
-			}
+			close(editor);
 		});
 	}
 
@@ -166,17 +163,13 @@
 	public void validation() {
 		Validation.active = true;
 
-		test(new Experiment() {
+		test(filePath -> {
+			final GenericEditor editor = open(filePath);
 
-			@Override
-			public void test(String filePath) {
-				final GenericEditor editor = open(filePath);
+			final EClassifier lastEClassifier = getLastEClassifier(editor);
+			reveal(editor, lastEClassifier);
 
-				final EClassifier lastEClassifier = getLastEClassifier(editor);
-				reveal(editor, lastEClassifier);
-
-				close(editor);
-			}
+			close(editor);
 		});
 	}
 
@@ -285,68 +278,9 @@
 	 *
 	 * @param experiment the experiment to run at each scale of model
 	 */
-	final void test(Experiment experiment) {
-		class RunnableExperiment implements Runnable {
-			private final String filePath;
-			private final Experiment experiment;
-
-			RunnableExperiment(String filePath, Experiment experiment) {
-				super();
-
-				this.filePath = filePath;
-				this.experiment = experiment;
-			}
-
-			@Override
-			public void run() {
-				experiment.test(filePath);
-			}
-		}
-
-		final Measure smallScale = time(ITERATIONS, new RunnableExperiment(SMALL_FILE_NAME, experiment));
-		System.out.println("Small scale: " + smallScale);
-		final Measure largeScale = time(ITERATIONS, new RunnableExperiment(LARGE_FILE_NAME, experiment));
-		System.out.println("Large scale: " + largeScale);
-
-		if (largeScale.average > WORST_CASE_MULTIPLIER * smallScale.average) {
-			fail(String.format("Performance does not scale: %s ≫ %s", largeScale, smallScale));
-		}
-	}
-
-	/**
-	 * Run an {@code experiment} several times to compute the average elapsed time
-	 * with standard deviation.
-	 */
-	Measure time(int iterations, Runnable experiment) {
-		final int count = Math.max(7, iterations); // We toss high and low so need at least five
-		final int n = count - 2;
-
-		final double[] samples = new double[count];
-
-		for (int i = 0; i < count; i++) {
-			final long start = System.nanoTime();
-			experiment.run();
-			final long end = System.nanoTime();
-			samples[i] = (end - start) / 1000000d;
-		}
-
-		Arrays.sort(samples);
-
-		final int last = count - 1;
-		double sum = 0.0;
-		for (int i = 1; i < last; i++) {
-			sum = sum + samples[i];
-		}
-
-		final double average = sum / n;
-		double sumdev = 0.0;
-		for (int i = 1; i < last; i++) {
-			final double dev = samples[i] - average;
-			sumdev = sumdev + dev * dev;
-		}
-		final double stddev = Math.sqrt(sumdev / (n - 1));
-
-		return new Measure(average, stddev);
+	final void test(Consumer<String> experiment) {
+		PerformanceClock.test(ITERATIONS, WORST_CASE_MULTIPLIER, () -> SMALL_FILE_NAME, () -> LARGE_FILE_NAME,
+			experiment);
 	}
 
 	GenericEditor open(String fileName) {
@@ -602,34 +536,6 @@
 	}
 
 	/**
-	 * Protocol for a measured (timed) experiment.
-	 *
-	 * @author Christian W. Damus
-	 */
-	interface Experiment {
-		void test(String filePath);
-	}
-
-	static final class Measure {
-		// BEGIN COMPLEX CODE
-		final double average;
-		final double stddev;
-		// END COMPLEX CODE
-
-		Measure(double average, double stddev) {
-			super();
-
-			this.average = average;
-			this.stddev = stddev;
-		}
-
-		@Override
-		public String toString() {
-			return String.format("%.1f ms (σ = %.2f ms)", average, stddev);
-		}
-	}
-
-	/**
 	 * Subclass of the <em>Ecore Editor</em> that injects view-model properties to select our
 	 * custom {@link EPackage} view.
 	 */
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.checkstyle b/tests/org.eclipse.emfforms.ide.builder.test/.checkstyle
new file mode 100644
index 0000000..24d357f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="ESMCheckstyleTest" location="/org.eclipse.emf.ecp.releng/checkstyle/esmCheckstyleTest.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="Java Files" enabled="true" check-config-name="ESMCheckstyleTest" local="true">
+    <file-match-pattern match-pattern=".java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.classpath b/tests/org.eclipse.emfforms.ide.builder.test/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.project b/tests/org.eclipse.emfforms.ide.builder.test/.project
new file mode 100644
index 0000000..48883ef
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.emfforms.ide.builder.test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f548abb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+
+encoding//model/etypes.ecore=UTF-8
+
+
+encoding/<project>=UTF-8
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.core.runtime.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..7269f8c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,420 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
+org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,NORMAL
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED,APITODO
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=120
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..3bb2352
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8bc4bb4
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,127 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_esmCleanUp
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_esmFormatter
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) 2011-${year} EclipseSource Muenchen GmbH and others.\r\n * \r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * ${user} - initial API and implementation\r\n ******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\r\n * {@inheritDoc}\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">\t\t\t// TODO Auto-generated catch block\r\n\t\t\t// Do NOT catch all Exceptions ("catch (Exception e)")\r\n\t\t\t// Log AND handle Exceptions if possible \r\n            //\r\n            // You can just uncomment one of the lines below to log an exception\:\r\n\t\t\t// logException will show the logged excpetion to the user\r\n\t\t\t// ModelUtil.logException(${exception_var});\r\n\t\t\t// ModelUtil.logException("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// logWarning will only add the message to the error log\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE", ${exception_var});\r\n\t\t\t// ModelUtil.logWarning("YOUR MESSAGE HERE");\r\n\t\t\t//\t\t\t\r\n\t\t\t// If handling is not possible declare and rethrow Exception</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.ltk.core.refactoring.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..864e30f
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.pde.api.tools.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..e4e3c00
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..0bbee3c
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/AllPluginTests for emfforms.ide.builder.launch b/tests/org.eclipse.emfforms.ide.builder.test/AllPluginTests for emfforms.ide.builder.launch
new file mode 100644
index 0000000..fb48c35
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/AllPluginTests for emfforms.ide.builder.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/AllPluginTests for emfforms.ide.builder"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/test/AllPluginTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.ide.builder.test.AllPluginTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.ide.builder.test"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.felix.scr@1:true,org.apache.log4j@default:default,org.apache.lucene.analyzers-common@default:default,org.apache.lucene.analyzers-smartcn@default:default,org.apache.lucene.core@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.emf.validation@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.nebula.widgets.grid@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.platform@default:default,org.eclipse.swt@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.objenesis@default:default,org.slf4j.api@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emfforms.ide.builder.test@default:false,org.eclipse.emfforms.ide.builder@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.ide.builder.test/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..36f5cbb
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test plugin for EMFForms IDE Builder
+Bundle-SymbolicName: org.eclipse.emfforms.ide.builder.test;singleton:=true
+Bundle-Version: 1.20.0.qualifier
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.12.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.emfforms.ide.builder;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.emfforms.core.bazaar;bundle-version="[1.20.0,2.0.0)",
+ org.eclipse.emf.edit.ui;bundle-version="[2.13.0,3.0.0)",
+ org.hamcrest.core;bundle-version="[1.3.0,2.0.0)",
+ org.hamcrest.library;bundle-version="[1.3.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.emfforms.ide.builder.test
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emfforms.ide.builder;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.ide.builder.test;version="1.20.0";x-internal:=true
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/about.html b/tests/org.eclipse.emfforms.ide.builder.test/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2007</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/build.properties b/tests/org.eclipse.emfforms.ide.builder.test/build.properties
new file mode 100644
index 0000000..890a9a1
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               resources/,\
+               about.html
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/pom.xml b/tests/org.eclipse.emfforms.ide.builder.test/pom.xml
new file mode 100644
index 0000000..46fb5aa
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.emf.ecp</groupId>
+		<artifactId>ecp-tests-parent</artifactId>
+		<version>1.20.0-SNAPSHOT</version>
+		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
+	</parent>
+	<groupId>org.eclipse.emf.ecp</groupId>
+	<artifactId>org.eclipse.emfforms.ide.builder.test</artifactId>
+	<version>1.20.0-SNAPSHOT</version>
+	<packaging>eclipse-test-plugin</packaging>
+
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<plugins>
+			<!-- We need to configure tycho to start a workbench in which the tests are run -->
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+					<useUIHarness>true</useUIHarness>
+					<useUIThread>true</useUIThread>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<configuration>
+					<dependency-resolution>
+						<extraRequirements>
+							<requirement>
+								<type>eclipse-feature</type>
+								<id>org.eclipse.emf.ecp.emfforms.sdk.feature</id>
+								<versionRange>0.0.0</versionRange>
+							</requirement>
+						</extraRequirements>
+					</dependency-resolution>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/resources/DataTemplateErrors/errors.datatemplate b/tests/org.eclipse.emfforms.ide.builder.test/resources/DataTemplateErrors/errors.datatemplate
new file mode 100644
index 0000000..cebe989
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/DataTemplateErrors/errors.datatemplate
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emfforms.datatemplate.model:TemplateCollection
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:org.eclipse.emfforms.datatemplate.model="http://org/eclipse/emfforms/datatemplate/model">
+  <templates
+      name="Named Object">
+    <instance
+        xsi:type="ecore:EClass"
+        name="NamedObject">
+      <eStructuralFeatures
+          xsi:type="ecore:EAttribute"
+          name="name"
+          lowerBound="1"/>
+    </instance>
+  </templates>
+</org.eclipse.emfforms.datatemplate.model:TemplateCollection>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/resources/NotAViewModel/noXMI.view b/tests/org.eclipse.emfforms.ide.builder.test/resources/NotAViewModel/noXMI.view
new file mode 100644
index 0000000..e24cd15
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/NotAViewModel/noXMI.view
@@ -0,0 +1 @@
+// this is not a view model file
\ No newline at end of file
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/resources/NotAViewModel/wrongXMI.view b/tests/org.eclipse.emfforms.ide.builder.test/resources/NotAViewModel/wrongXMI.view
new file mode 100644
index 0000000..045db56
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/NotAViewModel/wrongXMI.view
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ASCII"?
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmlns:org.eclipse.emf.ecp.view.stack.model="http://org/eclipse/emf/ecp/view/stack/model" xmi:id="_mfOkgEWAEeWfKJaajyNdyA">
+  <rootEClass href="http://org/eclipse/emf/ecp/view/group/model#//Group"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_mfPLkEWAEeWfKJaajyNdyA" name="Control name">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_mfPLkUWAEeWfKJaajyNdyA">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/emf/ecp/view/model/1180#//Element/name"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
\ No newline at end of file
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidModel/control.view b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidModel/control.view
new file mode 100644
index 0000000..196df35
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidModel/control.view
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_WB0E8EWCEeWfKJaajyNdyA">
+  <rootEClass href="http://org/eclipse/emf/ecp/view/model/1180#//Control"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_WB0E8UWCEeWfKJaajyNdyA" name="Control name">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_WB0E8kWCEeWfKJaajyNdyA">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/emf/ecp/view/model/1180#//Element/name"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidModel/group.view b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidModel/group.view
new file mode 100644
index 0000000..fe5ca59
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidModel/group.view
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_mfOkgEWAEeWfKJaajyNdyA">
+  <rootEClass href="http://org/eclipse/emf/ecp/view/group/model#//Group"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_mfPLkEWAEeWfKJaajyNdyA" name="Control name">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_mfPLkUWAEeWfKJaajyNdyA">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/emf/ecp/view/model/1180#//Element/name"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/ValidationError.view b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/ValidationError.view
new file mode 100644
index 0000000..0aacdab
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/ValidationError.view
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmlns:org.eclipse.emfforms.view.annotation.model="http://org/eclipse/emf/emfforms/view/annotation/model" xmi:id="_mfOkgEWAEeWfKJaajyNdyA">
+  <rootEClass href="http://org/eclipse/emf/ecp/view/group/model#//Group"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_mfPLkEWAEeWfKJaajyNdyA" name="DMR NotAFeature">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_mfPLkUWAEeWfKJaajyNdyA">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/emf/ecp/view/model/1180#//Element/notAFeature"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_mfPLkEWAEeWfKJaajyNdyA" name="Control name">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_mfPLkUWAEeWfKJaajyNdyA">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="wrongREF"/>
+    </domainModelReference>
+  </children>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_mfPLkEWAEeWfKJaajyNdyA" name="No DMR"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_SQXGkBs2EemWJdWNOROymw" name="AnnotationFail">
+    <attachments xsi:type="org.eclipse.emfforms.view.annotation.model:Annotation" xmi:id="_ZE-1ABs2EemWJdWNOROymw"/>
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_Yk0HMBs2EemWJdWNOROymw">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/emf/ecp/view/model/1180#//Element/name"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/goodModel.view b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/goodModel.view
new file mode 100644
index 0000000..196df35
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/resources/ValidationErrors/goodModel.view
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.emf.ecp.view.model:View xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.emf.ecp.view.model="http://org/eclipse/emf/ecp/view/model/1180" xmi:id="_WB0E8EWCEeWfKJaajyNdyA">
+  <rootEClass href="http://org/eclipse/emf/ecp/view/model/1180#//Control"/>
+  <children xsi:type="org.eclipse.emf.ecp.view.model:Control" xmi:id="_WB0E8UWCEeWfKJaajyNdyA" name="Control name">
+    <domainModelReference xsi:type="org.eclipse.emf.ecp.view.model:FeaturePathDomainModelReference" xmi:id="_WB0E8kWCEeWfKJaajyNdyA">
+      <domainModelEFeature xsi:type="ecore:EAttribute" href="http://org/eclipse/emf/ecp/view/model/1180#//Element/name"/>
+    </domainModelReference>
+  </children>
+</org.eclipse.emf.ecp.view.model:View>
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/AbstractBuilderTest.java b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/AbstractBuilderTest.java
new file mode 100644
index 0000000..042701b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/AbstractBuilderTest.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceDescription;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.jobs.Job;
+import org.junit.Before;
+
+/**
+ * Abstract framework for builder tests.
+ */
+public abstract class AbstractBuilderTest {
+
+	@Before
+	public void deleteProjects() throws CoreException {
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		for (final IProject project : root.getProjects()) {
+			project.delete(true, monitor);
+		}
+	}
+
+	protected static void setAutoBuild(boolean autoBuild) throws CoreException {
+		final IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription();
+		description.setAutoBuilding(autoBuild);
+		ResourcesPlugin.getWorkspace().setDescription(description);
+	}
+
+	protected IMarker[] findMarkersOnResource(IResource resource) {
+		IMarker[] problems = null;
+		final int depth = IResource.DEPTH_INFINITE;
+		try {
+			problems = resource.findMarkers(IMarker.PROBLEM, true, depth);
+		} catch (final CoreException e) {
+			// something went wrong
+		}
+		return problems;
+	}
+
+	protected static IProject createProject(String name, IProgressMonitor monitor) throws CoreException {
+		final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		final IProject project = root.getProject(name);
+		project.create(monitor);
+		project.open(monitor);
+		return project;
+	}
+
+	protected static IFile importFileIntoProject(IProject project, File file, IProgressMonitor monitor)
+		throws CoreException, IOException {
+		final IFile targetResource = project.getFile(new Path(file.getName()));
+		final InputStream contentStream = new FileInputStream(file);
+		targetResource.create(contentStream, false, monitor);
+		contentStream.close();
+		return targetResource;
+
+	}
+
+	protected static IProject createAndPopulateProject(String projectName, IProgressMonitor monitor)
+		throws CoreException, IOException {
+		final IProject project = createProject(projectName, monitor);
+		// copy content of the resources equivalent folder
+		final String folderName = String.format("/resources/%s/", projectName);//$NON-NLS-1$
+		final String resourceFolderPath = new File(".").getAbsolutePath() + folderName;//$NON-NLS-1$
+		final File resourceFolder = new File(resourceFolderPath);
+		for (final File file : resourceFolder.listFiles()) {
+			importFileIntoProject(project, file, monitor);
+		}
+		return project;
+	}
+
+	protected static void waitForAuroBuild() {
+		try {
+			Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
+		} catch (InterruptedException | OperationCanceledException e) {
+			e.printStackTrace();
+			fail("Test interrupted waiting for workspace build: " + e.getMessage()); //$NON-NLS-1$
+		}
+	}
+}
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/ValidationBuilder_PTest.java b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/ValidationBuilder_PTest.java
new file mode 100644
index 0000000..8b6b1f0
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/ValidationBuilder_PTest.java
@@ -0,0 +1,334 @@
+/*******************************************************************************
+ * Copyright (c) 2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.hamcrest.Matchers.greaterThanOrEqualTo;
+import static org.hamcrest.Matchers.notNullValue;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Hashtable;
+import java.util.List;
+
+import javax.inject.Named;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emfforms.bazaar.Bid;
+import org.eclipse.emfforms.bazaar.Create;
+import org.eclipse.emfforms.ide.internal.builder.ProjectNature;
+import org.eclipse.emfforms.ide.internal.builder.ValidationBuilder;
+import org.eclipse.emfforms.ide.internal.builder.ValidationNature;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Test;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ * Test for the {@link ValidationBuilder} class.
+ */
+public class ValidationBuilder_PTest extends AbstractBuilderTest {
+
+	private final List<ServiceRegistration<?>> registrations = new ArrayList<>();
+
+	@Test
+	public void validProject() throws CoreException, IOException {
+		// initial state
+		final String projectName = "ValidModel"; //$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+		// valid Files => No marker
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+	}
+
+	@Test
+	public void notAModelValidationProject() throws CoreException, IOException {
+		final String projectName = "NotAViewModel"; //$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+		// no view files (wrong XMI, not XML file, etc.) => Mark them with an error.
+		Assert.assertEquals(2, markers.length);
+	}
+
+	/**
+	 * Test that problem markers are correctly created for resources that have validation errors.
+	 */
+	@Test
+	public void validationErrors() throws CoreException, IOException {
+		final String projectName = "ValidationErrors";//$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+
+		// 4 errors:
+		// 2 unresolved DMR and one missing DMR as ECP pure validation errros
+		// an annotation with a missing key as a simple EMF error
+		for (final IMarker marker : markers) {
+			System.err.println(marker);
+		}
+		Assert.assertEquals(4, markers.length);
+	}
+
+	/**
+	 * Test that problem markers are correctly <em>not</em> created for resources
+	 * even that have validation errors, when auto-build is not enabled.
+	 */
+	@Test
+	public void noAutoBuild() throws CoreException, IOException {
+		final String projectName = "ValidationErrors"; //$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is off,
+		// which means that it won't do validation
+		setAutoBuild(false);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+		// valid Files => No marker
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+	}
+
+	@Test
+	public void delegateProviders() throws CoreException, IOException {
+		registerDataTemplateDelegate();
+
+		final String projectName = "DataTemplateErrors";//$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+
+		// 4 errors:
+		// 2 unresolved DMR and one missing DMR as ECP pure validation errros
+		// an annotation with a missing key as a simple EMF error
+		for (final IMarker marker : markers) {
+			System.err.println(marker);
+		}
+		Assert.assertThat(markers.length, greaterThanOrEqualTo(1));
+	}
+
+	@Test
+	public void markerHelperProviders() throws CoreException, IOException {
+		registerMarkerHelper();
+
+		final String projectName = "ValidationErrors";//$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+
+		// 4 errors:
+		// 2 unresolved DMR and one missing DMR as ECP pure validation errros
+		// an annotation with a missing key as a simple EMF error
+		for (final IMarker marker : markers) {
+			System.err.println(marker);
+
+			// These look like they were created by our marker helper
+			Assert.assertThat(marker.getAttribute(IMarker.MESSAGE, ""), startsWith("*TEST* "));
+		}
+		Assert.assertThat(markers.length, greaterThanOrEqualTo(1));
+	}
+
+	@Test
+	public void injections() throws CoreException, IOException {
+		class Canary implements ValidationDelegateProvider {
+			// BEGIN COMPLEX CODE - This is just for testing
+			String fileName;
+			IContentType contentType;
+			String contentTypeID;
+			// END COMPLEX CODE
+
+			@Bid
+			public Double bid(IFile file, IContentType contentType,
+				@Named(BuilderConstants.CONTENT_TYPE) String contentTypeID) {
+				fileName = file.getName();
+				this.contentType = contentType;
+				this.contentTypeID = contentTypeID;
+				return null;
+			}
+
+			void dump() {
+				System.err.printf("File name: %s%n", fileName);
+				System.err.printf("Content-type ID: %s%n", contentTypeID);
+				System.err.printf("Content-type: %s%n", contentType);
+			}
+		}
+
+		final Canary canary = new Canary();
+		register(ValidationDelegateProvider.class, canary);
+
+		final String projectName = "DataTemplateErrors";//$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		waitForAuroBuild();
+
+		canary.dump();
+		Assert.assertThat("No file", canary.fileName, notNullValue());
+		Assert.assertThat("No content-type ID", canary.contentTypeID, notNullValue());
+		Assert.assertThat("No content-type", canary.contentType, notNullValue());
+	}
+
+	//
+	// Test framework
+	//
+
+	@After
+	public void deregisterServices() {
+		for (final ServiceRegistration<?> next : registrations) {
+			next.unregister();
+		}
+	}
+
+	BundleContext getBundleContext() {
+		return FrameworkUtil.getBundle(getClass()).getBundleContext();
+	}
+
+	<S> ServiceRegistration<S> register(Class<S> serviceType, S service) {
+		final ServiceRegistration<S> result = getBundleContext().registerService(
+			serviceType, service, new Hashtable<>());
+		registrations.add(result);
+		return result;
+	}
+
+	ServiceRegistration<ValidationDelegateProvider> registerDataTemplateDelegate() {
+		final ValidationDelegateProvider provider = new ValidationDelegateProvider() {
+			private final Double bid = Double.MAX_VALUE;
+
+			@Bid
+			public Double bid(IFile file) {
+				return "datatemplate".equals(file.getFullPath().getFileExtension())
+					? bid
+					: null;
+			}
+
+			@Create
+			public ValidationDelegate createDelegate() {
+				return new ValidationServiceDelegate();
+			}
+		};
+
+		return register(ValidationDelegateProvider.class, provider);
+	}
+
+	ServiceRegistration<MarkerHelperProvider> registerMarkerHelper() {
+		final IFile[] fileHolder = { null };
+		final MarkerHelper markerHelper = new DefaultMarkerHelper() {
+			@Override
+			protected void adjustMarker(IMarker marker, Diagnostic diagnostic, Diagnostic parentDiagnostic)
+				throws CoreException {
+
+				super.adjustMarker(marker, diagnostic, parentDiagnostic);
+
+				String message = marker.getAttribute(IMarker.MESSAGE, "");
+				message = "*TEST* " + message;
+				marker.setAttribute(IMarker.MESSAGE, message);
+			}
+
+			@Override
+			protected IFile getFile(Diagnostic diagnostic) {
+				return fileHolder[0];
+			}
+		};
+
+		final MarkerHelperProvider provider = new MarkerHelperProvider() {
+			private final Double bid = Double.MAX_VALUE;
+
+			@Bid
+			public Double bid(IFile file) {
+				return "view".equals(file.getFullPath().getFileExtension())
+					? bid
+					: null;
+			}
+
+			@Create
+			public MarkerHelper createDelegate(IFile file) {
+				fileHolder[0] = file;
+				return markerHelper;
+			}
+		};
+
+		return register(MarkerHelperProvider.class, provider);
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/ViewModelBuilder_PTest.java b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/ViewModelBuilder_PTest.java
new file mode 100644
index 0000000..369f7ca
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/ViewModelBuilder_PTest.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder;
+
+import java.io.IOException;
+import java.util.Collections;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emfforms.ide.internal.builder.ProjectNature;
+import org.eclipse.emfforms.ide.internal.builder.ValidationNature;
+import org.eclipse.emfforms.ide.internal.builder.ViewModelBuilder;
+import org.eclipse.emfforms.ide.internal.builder.ViewModelNature;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test for Class {@link ViewModelBuilder}
+ */
+public class ViewModelBuilder_PTest extends AbstractBuilderTest {
+
+	@Test
+	public void validProject() throws CoreException, IOException {
+		// initial state
+		final String projectName = "ValidModel"; //$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ViewModelNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+		// valid Files => No marker
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+	}
+
+	@Test
+	public void notAViewModelProject() throws CoreException, IOException {
+		final String projectName = "NotAViewModel"; //$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ViewModelNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+		// no view files (wrong XMI, not XML file, etc.) => Mark them with an error.
+		Assert.assertEquals(2, markers.length);
+	}
+
+	@Test
+	public void validationErrors() throws CoreException, IOException {
+		final String projectName = "ValidationErrors";//$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ViewModelNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+
+		// 4 errors:
+		// 2 unresolved DMR and one missing DMR as ECP pure validation errros
+		// an annotation with a missing key as a simple EMF error
+		for (final IMarker marker : markers) {
+			System.err.println(marker);
+		}
+		Assert.assertEquals(4, markers.length);
+	}
+
+	@Test
+	public void noAutoBuild() throws CoreException, IOException {
+		final String projectName = "ValidationErrors"; //$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding nature to the project and auto-build is on
+		setAutoBuild(false);
+		ProjectNature.toggleNature(project, ViewModelNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+		// valid Files => No marker
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+	}
+
+	@Test
+	public void noRedundancyWithValidationNature() throws CoreException, IOException {
+		final String projectName = "ValidationErrors";//$NON-NLS-1$
+		final IProgressMonitor monitor = new NullProgressMonitor();
+		final IProject project = createAndPopulateProject(projectName, monitor);
+		IMarker[] markers = findMarkersOnResource(project);
+		// No build yet => no markers
+		Assert.assertArrayEquals(Collections.<IMarker> emptyList().toArray(), markers);
+
+		// trigger builder by adding both natures to the project and auto-build is on
+		setAutoBuild(true);
+		ProjectNature.toggleNature(project, ValidationNature.NATURE_ID);
+		ProjectNature.toggleNature(project, ViewModelNature.NATURE_ID);
+		waitForAuroBuild();
+
+		// final state
+		markers = findMarkersOnResource(project);
+
+		// Only 4 errors, not 8 which would happen if both builders did their work
+		Assert.assertEquals(4, markers.length);
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/test/AllPluginTests.java b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/test/AllPluginTests.java
new file mode 100644
index 0000000..59f909b
--- /dev/null
+++ b/tests/org.eclipse.emfforms.ide.builder.test/src/org/eclipse/emfforms/ide/builder/test/AllPluginTests.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ * Christian W. Damus - bug 544499
+ ******************************************************************************/
+package org.eclipse.emfforms.ide.builder.test;
+
+import org.eclipse.emfforms.ide.builder.ValidationBuilder_PTest;
+import org.eclipse.emfforms.ide.builder.ViewModelBuilder_PTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * All plugin tests for org.eclipse.emfforms.ide.builder.
+ */
+@RunWith(Suite.class)
+@SuiteClasses({
+	ViewModelBuilder_PTest.class,
+	ValidationBuilder_PTest.class,
+})
+public class AllPluginTests {
+
+}
diff --git a/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF
index 4b80736..3872405 100644
--- a/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.localization.tests/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMF Forms Localization Tests
 Bundle-SymbolicName: org.eclipse.emfforms.localization.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.localization;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.localization.tests;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.localization;version="1.19.0"
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.localization;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.localization.tests;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.localization;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="4.11.0",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5",
-  org.eclipse.equinox.ds;bundle-version="[1.4.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="1.9.5",
+ org.eclipse.equinox.ds;bundle-version="[1.4.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.localization.tests
diff --git a/tests/org.eclipse.emfforms.localization.tests/pom.xml b/tests/org.eclipse.emfforms.localization.tests/pom.xml
index e319b70..1d76ecb 100644
--- a/tests/org.eclipse.emfforms.localization.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.localization.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.localization.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.rulerepository.tooling.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.rulerepository.tooling.test/META-INF/MANIFEST.MF
index 11968d1..d63dd82 100644
--- a/tests/org.eclipse.emfforms.rulerepository.tooling.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.rulerepository.tooling.test/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Rule Repository Tooling Test
 Bundle-SymbolicName: org.eclipse.emfforms.rulerepository.tooling.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.rulerepository.tooling;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.rulerepository.tooling.test;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.rulerepository.tooling;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.rulerepository.tooling.merge;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.rulerepository.tooling.wizard;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.rulerepository.tooling.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.objenesis;bundle-version="[1.0.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.rulerepository.tooling.test
diff --git a/tests/org.eclipse.emfforms.rulerepository.tooling.test/pom.xml b/tests/org.eclipse.emfforms.rulerepository.tooling.test/pom.xml
index 78a04dc..4a0c035 100644
--- a/tests/org.eclipse.emfforms.rulerepository.tooling.test/pom.xml
+++ b/tests/org.eclipse.emfforms.rulerepository.tooling.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emfforms.rulerepository.tooling.test</artifactId>
 	<packaging>eclipse-test-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<groupId>org.eclipse.emf.ecp</groupId>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.common.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.common.test/META-INF/MANIFEST.MF
index 91d3463..6aeb8b2 100644
--- a/tests/org.eclipse.emfforms.swt.common.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.common.test/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Common Test Helper
 Bundle-SymbolicName: org.eclipse.emfforms.swt.common.test
-Bundle-Version: 1.19.0.qualifier
-Export-Package: org.eclipse.emfforms.swt.common.test;version="1.19.0"
+Bundle-Version: 1.20.0.qualifier
+Export-Package: org.eclipse.emfforms.swt.common.test;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.11.0,3.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.11.0,3.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0"
+ org.eclipse.swt.widgets;version="0.0.0"
 Automatic-Module-Name: org.eclipse.emfforms.swt.common.test
diff --git a/tests/org.eclipse.emfforms.swt.common.test/pom.xml b/tests/org.eclipse.emfforms.swt.common.test/pom.xml
index 751dc11..88edacd 100644
--- a/tests/org.eclipse.emfforms.swt.common.test/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.common.test/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 
 	<artifactId>org.eclipse.emfforms.swt.common.test</artifactId>
 	<packaging>eclipse-test-plugin</packaging>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 
 	<build>
 		<sourceDirectory>src</sourceDirectory>
diff --git a/tests/org.eclipse.emfforms.swt.common.test/src/org/eclipse/emfforms/swt/common/test/AbstractControl_PTest.java b/tests/org.eclipse.emfforms.swt.common.test/src/org/eclipse/emfforms/swt/common/test/AbstractControl_PTest.java
index 58927a7..6419962 100644
--- a/tests/org.eclipse.emfforms.swt.common.test/src/org/eclipse/emfforms/swt/common/test/AbstractControl_PTest.java
+++ b/tests/org.eclipse.emfforms.swt.common.test/src/org/eclipse/emfforms/swt/common/test/AbstractControl_PTest.java
@@ -104,7 +104,7 @@
 		when(setting.getEObject()).thenReturn(eObject);
 		when(setting.getEStructuralFeature()).thenReturn(eStructuralFeature);
 
-		mockDatabindingIsUnsettable();
+		mockDatabindingIsSettableAndChangeable();
 
 		Mockito.when(getvControl().getDomainModelReference()).thenReturn(
 			domainModelReference);
@@ -112,9 +112,10 @@
 		Mockito.doReturn(UUID).when(getvControl()).getUuid();
 	}
 
-	protected void mockDatabindingIsUnsettable() throws DatabindingFailedException {
+	protected void mockDatabindingIsSettableAndChangeable() throws DatabindingFailedException {
 		final EStructuralFeature structuralFeature = mock(EStructuralFeature.class);
 		when(structuralFeature.isUnsettable()).thenReturn(false);
+		when(structuralFeature.isChangeable()).thenReturn(true);
 		final IValueProperty valueProperty = mock(IValueProperty.class);
 		when(valueProperty.getValueType()).thenReturn(structuralFeature);
 		when(getDatabindingService().getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
diff --git a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/META-INF/MANIFEST.MF
index 164b13d..dd33fea 100644
--- a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for EMFForms SWT Renderer for Multi EAttributes
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.multiattribute.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.spi.view.control.multiattribute;version="1.19.0"
+Fragment-Host: org.eclipse.emfforms.swt.control.multiattribute;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.spi.view.control.multiattribute;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.hamcrest.library;bundle-version="1.3.0"
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.hamcrest.library;bundle-version="1.3.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.control.multiattribute.tests
diff --git a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/MultiAttributeSWTRenderer_ITest.launch b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/MultiAttributeSWTRenderer_ITest.launch
index 0741163..899497a 100644
--- a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/MultiAttributeSWTRenderer_ITest.launch
+++ b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/MultiAttributeSWTRenderer_ITest.launch
@@ -15,17 +15,18 @@
 <booleanAttribute key="includeOptional" value="false"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer_ITest.java"/>
+<listEntry value="/org.eclipse.emfforms.swt.control.multiattribute.tests"/>
 </listAttribute>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
+<listEntry value="4"/>
 </listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.emfforms.swt.control.multiattribute.tests"/>
 <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
 <stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
 <stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emfforms.spi.view.control.multiattribute.MultiAttributeSWTRenderer_ITest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emfforms.swt.control.multiattribute.tests"/>
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
@@ -33,8 +34,8 @@
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.platform.ide"/>
 <booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.css*1.8.0.v20170214-1941@default:default,org.apache.batik.util*1.8.0.v20170214-1941@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging@default:default,org.apache.felix.scr@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.observable*1.6.100.v20170515-1119@default:default,org.eclipse.core.databinding.property*1.6.100.v20170515-1119@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.swt.gtk@default:false,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.w3c.css.sac@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.control.multiattribute.tests@default:false,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.model.localization@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants@default:default,org.apache.batik.css*1.10.0.v20180703-1553@default:default,org.apache.batik.i18n@default:default,org.apache.batik.util*1.10.0.v20180703-1553@default:default,org.apache.commons.codec@default:default,org.apache.commons.io@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.scr@1:true,org.apache.xmlgraphics@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding*1.7.100.v20181030-1443@default:default,org.eclipse.core.databinding.observable*1.6.300.v20180827-2028@default:default,org.eclipse.core.databinding.property*1.6.300.v20180827-2028@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.macosx@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt.cocoa@default:false,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.macosx@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.cocoa.macosx.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.cocoa@default:false,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core*1.3.0.v201303031735@default:default,org.hamcrest.core*1.3.0.v20180420-1519@default:default,org.hamcrest.library@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.tukaani.xz@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.test@default:false,org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core.test@default:false,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt.test@default:false,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.makeithappen.model@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.test.model@default:default,org.eclipse.emf.ecp.ui.view.swt.test@default:false,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.categorization.model@default:default,org.eclipse.emf.ecp.view.context.tests@default:false,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt.tests@default:false,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.group.model@default:default,org.eclipse.emf.ecp.view.group.ui.swt.test@default:false,org.eclipse.emf.ecp.view.group.ui.swt@default:default,org.eclipse.emf.ecp.view.horizontal.model@default:default,org.eclipse.emf.ecp.view.horizontal.ui.swt.test@default:false,org.eclipse.emf.ecp.view.horizontal.ui.swt@default:default,org.eclipse.emf.ecp.view.indexdmr.model@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.mappingdmr.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.test@default:false,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi.test@default:false,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model.test@default:false,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.rule.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.columnservice@default:default,org.eclipse.emf.ecp.view.table.model.test@default:false,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.table.test.common@default:default,org.eclipse.emf.ecp.view.table.ui.swt.test@default:false,org.eclipse.emf.ecp.view.table.ui.swt@default:default,org.eclipse.emf.ecp.view.table.validation.test@default:false,org.eclipse.emf.ecp.view.table.validation@default:default,org.eclipse.emf.ecp.view.template.annotation.model@default:default,org.eclipse.emf.ecp.view.template.model.test@default:false,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service.test@default:false,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.test.common@default:default,org.eclipse.emf.ecp.view.treemasterdetail.model@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.validation.test@default:false,org.eclipse.emf.ecp.view.validation@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emf.ecp.view.vertical.ui.swt.test@default:false,org.eclipse.emf.ecp.view.vertical.ui.swt@default:default,org.eclipse.emf.rap.edit.ui.minimal@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common.tests@default:false,org.eclipse.emfforms.common.validation.tests@default:false,org.eclipse.emfforms.common.validation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar.tests@default:false,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath.tests@default:false,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.databinding.index.tests@default:false,org.eclipse.emfforms.core.services.databinding.index@default:default,org.eclipse.emfforms.core.services.databinding.mapping.tests@default:false,org.eclipse.emfforms.core.services.databinding.mapping@default:default,org.eclipse.emfforms.core.services.databinding.testmodel@default:default,org.eclipse.emfforms.core.services.domainexpander.default.tests@default:false,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.domainexpander.index.tests@default:false,org.eclipse.emfforms.core.services.domainexpander.index@default:default,org.eclipse.emfforms.core.services.domainexpander.mapping.tests@default:false,org.eclipse.emfforms.core.services.domainexpander.mapping@default:default,org.eclipse.emfforms.core.services.domainexpander.table@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf.tests@default:false,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy.tests@default:false,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.default@default:default,org.eclipse.emfforms.core.services.mappingprovider.table.test@default:false,org.eclipse.emfforms.core.services.mappingprovider.table@default:default,org.eclipse.emfforms.core.services.segments.index@default:default,org.eclipse.emfforms.core.services.segments.mapping@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange.index@default:default,org.eclipse.emfforms.core.services.structuralchange.mapping@default:default,org.eclipse.emfforms.core.services.structuralchange.table@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services.tests@default:false,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.editor@default:default,org.eclipse.emfforms.localization.tests@default:false,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.control.multiattribute.tests@default:false,org.eclipse.emfforms.swt.control.multiattribute@default:default,org.eclipse.emfforms.swt.core.di.extension.tests@default:false,org.eclipse.emfforms.swt.core.di.extension@default:default,org.eclipse.emfforms.swt.core.di.tests@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core.plugin@default:default,org.eclipse.emfforms.swt.core.tests@default:false,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.swt.table@default:default,org.eclipse.emfforms.swt.treemasterdetail@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.controlgrid.model@default:default,org.eclipse.emfforms.view.indexsegment.model@default:default,org.eclipse.emfforms.view.mappingsegment.model@default:default,org.eclipse.emfforms.view.model.localization.tests@default:false,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/pom.xml b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/pom.xml
index f723e29..6d7f49f 100644
--- a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.control.multiattribute.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/CellEditorFactory_ITest.java b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/CellEditorFactory_ITest.java
new file mode 100644
index 0000000..7030912
--- /dev/null
+++ b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/CellEditorFactory_ITest.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Christian W. Damus and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Christian W. Damus - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.emfforms.spi.view.control.multiattribute;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.Arrays;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecp.edit.internal.swt.table.DateCellEditor;
+import org.eclipse.emf.ecp.edit.internal.swt.table.NumberCellEditor;
+import org.eclipse.emf.ecp.edit.spi.swt.table.ECPEnumCellEditor;
+import org.eclipse.emf.ecp.edit.spi.swt.table.StringCellEditor;
+import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.internal.view.control.multiattribute.celleditor.CellEditorFactory;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * Integration tests for the multi-attribute editor's {@link CellEditorFactory}.
+ */
+@RunWith(Parameterized.class)
+@SuppressWarnings("nls")
+public class CellEditorFactory_ITest {
+
+	private static EPackage ePackage;
+	private static EClass eClass;
+
+	private DefaultRealm realm;
+	private Shell shell;
+
+	private Table table;
+
+	private final EAttribute attribute;
+	private final EObject owner;
+	private final Class<? extends CellEditor> expectedEditorType;
+
+	@Mock
+	private ViewModelContext viewModelContext;
+
+	/**
+	 * Initializes me with my test parameters.
+	 *
+	 * @param attributeName the attribute name for which to create a cell editor
+	 * @param expectedEditorType the kind of cell editor expected to be created
+	 */
+	public CellEditorFactory_ITest(String attributeName, Class<? extends CellEditor> expectedEditorType) {
+		super();
+
+		attribute = (EAttribute) getEClass().getEStructuralFeature(attributeName);
+		owner = EcoreUtil.create(getEClass());
+		this.expectedEditorType = expectedEditorType;
+	}
+
+	@Test
+	public void createCellEditor() {
+		final CellEditor editor = CellEditorFactory.INSTANCE.createCellEditor(attribute, owner, table,
+			viewModelContext);
+
+		assertThat("No cell editor created", editor, notNullValue());
+		assertThat("Wrong cell editor created", editor, instanceOf(expectedEditorType));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Parameters(name = "{0}")
+	public static Iterable<Object[]> parameters() {
+		return Arrays.asList(new Object[][] {
+			{ "stringAttr", StringCellEditor.class },
+			{ "intAttr", NumberCellEditor.class },
+			{ "dateAttr", DateCellEditor.class },
+			{ "enumAttr", ECPEnumCellEditor.class },
+		});
+	}
+
+	@Before
+	public void initMocks() {
+		MockitoAnnotations.initMocks(this);
+	}
+
+	@Before
+	public void initUI() {
+		realm = new DefaultRealm();
+		shell = new Shell();
+		table = new Table(shell, SWT.BORDER);
+	}
+
+	@After
+	public void destroyUI() {
+		shell.dispose();
+		realm.dispose();
+	}
+
+	private static EClass getEClass() {
+		if (eClass == null) {
+			ePackage = EcoreFactory.eINSTANCE.createEPackage();
+			ePackage.setName("test");
+			ePackage.setNsURI("http://test/test");
+			ePackage.setNsPrefix("test");
+
+			eClass = eClass("Foo");
+			final EEnum flavourEnum = eEnum("Flavour", "sweet", "salty", "sour", "bitter");
+
+			attr("stringAttr", EcorePackage.Literals.ESTRING);
+			attr("intAttr", EcorePackage.Literals.EINT);
+			attr("dateAttr", EcorePackage.Literals.EDATE);
+			attr("enumAttr", flavourEnum);
+		}
+
+		return eClass;
+	}
+
+	private static <T extends EClassifier> T eClassifier(EClass metaclass, String name) {
+		@SuppressWarnings("unchecked")
+		final T result = (T) EcoreFactory.eINSTANCE.create(metaclass);
+		result.setName(name);
+		ePackage.getEClassifiers().add(result);
+		return result;
+	}
+
+	private static EClass eClass(String name) {
+		return eClassifier(EcorePackage.Literals.ECLASS, name);
+	}
+
+	private static EEnum eEnum(String name, String... literal) {
+		final EEnum result = eClassifier(EcorePackage.Literals.EENUM, name);
+		for (final String next : literal) {
+			final EEnumLiteral eel = EcoreFactory.eINSTANCE.createEEnumLiteral();
+			eel.setName(next);
+			result.getELiterals().add(eel);
+		}
+		return result;
+	}
+
+	private static EAttribute attr(String name, EDataType type) {
+		final EAttribute result = EcoreFactory.eINSTANCE.createEAttribute();
+		result.setName(name);
+		result.setUpperBound(-1);
+		result.setEType(type);
+		eClass.getEStructuralFeatures().add(result);
+		return result;
+	}
+
+}
diff --git a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer_ITest.java b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer_ITest.java
index 9d9e793..6741d35 100644
--- a/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer_ITest.java
+++ b/tests/org.eclipse.emfforms.swt.control.multiattribute.tests/src/org/eclipse/emfforms/spi/view/control/multiattribute/MultiAttributeSWTRenderer_ITest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
+ * Copyright (c) 2011-2019 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
@@ -8,9 +8,11 @@
  *
  * Contributors:
  * Johannes Faltermeier - initial API and implementation
+ * Christian W. Damus - bug 543348
  ******************************************************************************/
 package org.eclipse.emfforms.spi.view.control.multiattribute;
 
+import static org.hamcrest.CoreMatchers.hasItem;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
@@ -18,7 +20,11 @@
 import static org.hamcrest.Matchers.nullValue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.io.Serializable;
 import java.util.HashSet;
@@ -27,11 +33,17 @@
 import org.eclipse.core.databinding.observable.Observables;
 import org.eclipse.core.databinding.observable.list.IObservableList;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
 import org.eclipse.emf.common.command.BasicCommandStack;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.databinding.EMFObservables;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
@@ -57,6 +69,7 @@
 import org.eclipse.emf.emfstore.bowling.BowlingFactory;
 import org.eclipse.emf.emfstore.bowling.BowlingPackage;
 import org.eclipse.emf.emfstore.bowling.Game;
+import org.eclipse.emf.emfstore.bowling.TournamentType;
 import org.eclipse.emfforms.spi.common.report.ReportService;
 import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
 import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
@@ -81,6 +94,10 @@
 
 public class MultiAttributeSWTRenderer_ITest {
 
+	private static final String UUID_REMOVE = "UUID#remove"; //$NON-NLS-1$
+	private static final String UUID_ADD = "UUID#add"; //$NON-NLS-1$
+	private static final String UUID_DOWN = "UUID#down"; //$NON-NLS-1$
+	private static final String UUID_UP = "UUID#up"; //$NON-NLS-1$
 	private DefaultRealm realm;
 	private Shell shell;
 
@@ -93,7 +110,7 @@
 	private ImageRegistryService imageRegistryService;
 
 	@Before
-	public void before() throws NoLabelFoundException {
+	public void before() throws NoLabelFoundException, DatabindingFailedException {
 		realm = new DefaultRealm();
 		shell = new Shell();
 		GridLayoutFactory.fillDefaults().applyTo(shell);
@@ -107,6 +124,15 @@
 
 		imageRegistryService = Mockito.mock(ImageRegistryService.class);
 
+		// mock databinding to return a value property with changeable structural feature.
+		// Necessary due to the implementation of Bug 536250
+		final EStructuralFeature changeableFeature = mock(EStructuralFeature.class);
+		when(changeableFeature.isChangeable()).thenReturn(true);
+		final IValueProperty<?, ?> valueProperty = mock(IValueProperty.class);
+		when(valueProperty.getValueType()).thenReturn(changeableFeature);
+		when(emfFormsDatabinding.getValueProperty(any(VDomainModelReference.class), any(EObject.class)))
+			.thenReturn(valueProperty);
+
 		final IObservableValue<Serializable> displayName = Observables.constantObservableValue(
 			"Display Name", //$NON-NLS-1$
 			String.class);
@@ -151,8 +177,8 @@
 		return renderer;
 	}
 
-	private void createEditingDomain(final Game game) {
-		final EObject rootObject = EcoreUtil.getRootContainer(game);
+	private void createEditingDomain(final EObject object) {
+		final EObject rootObject = EcoreUtil.getRootContainer(object);
 		final ResourceSet rs = new ResourceSetImpl();
 		final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(new AdapterFactory[] {
 			new ReflectiveItemProviderAdapterFactory(),
@@ -364,12 +390,60 @@
 	public void buttonsUpDown_enableOnSelection()
 		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
 		/* setup domain */
+		final IObservableList<?> observeList = createBasicDomain();
+		Mockito.doReturn(true).when(vElement).isEffectivelyEnabled();
+		final MultiAttributeSWTRenderer renderer = createRenderer();
+
+		/* setup rendering */
+		final SWTGridDescription gridDescription = renderer.getGridDescription(null);
+		final SWTGridCell lastGridCell = gridDescription.getGrid().get(gridDescription.getGrid().size() - 1);
+
+		/* render */
+		final Control control = renderer.render(lastGridCell, shell);
+		final Button upButton = SWTTestUtil.findControlById(control, UUID_UP, Button.class);
+		final Button downButton = SWTTestUtil.findControlById(control, UUID_DOWN, Button.class);
+
+		/* by default, up is disabled (no selection) */
+		checkControlEnablement(upButton, false);
+		checkControlEnablement(downButton, false);
+
+		/* select first element in list */
+		renderer.getTableViewer().setSelection(new StructuredSelection(observeList.get(0)), true);
+		SWTTestUtil.waitForUIThread();
+		checkControlEnablement(upButton, false);
+		checkControlEnablement(downButton, true);
+
+		/* select an element in the middle of the list */
+		renderer.getTableViewer().setSelection(new StructuredSelection(observeList.get(3)), true);
+		SWTTestUtil.waitForUIThread();
+		checkControlEnablement(upButton, true);
+		checkControlEnablement(downButton, true);
+
+		/* select last element in list */
+		renderer.getTableViewer().setSelection(new StructuredSelection(observeList.get(4)), true);
+		SWTTestUtil.waitForUIThread();
+		checkControlEnablement(upButton, true);
+		checkControlEnablement(downButton, false);
+
+		/* remove selection */
+		renderer.getTableViewer().setSelection(StructuredSelection.EMPTY);
+		SWTTestUtil.waitForUIThread();
+		checkControlEnablement(upButton, false);
+		checkControlEnablement(downButton, false);
+	}
+
+	private void checkControlEnablement(Control control, boolean expectedEnable) {
+		assertNotNull("control does not exists", control); //$NON-NLS-1$
+		assertThat(control.getEnabled(), is(expectedEnable));
+	}
+
+	private IObservableList<?> createBasicDomain() throws DatabindingFailedException {
 		final Game game = BowlingFactory.eINSTANCE.createGame();
 		game.getFrames().add(1);
 		game.getFrames().add(1);
 		game.getFrames().add(1);
 		game.getFrames().add(2);
-		game.getFrames().add(2);
+		game.getFrames().add(3);
 
 		createEditingDomain(game);
 
@@ -381,7 +455,50 @@
 			BowlingPackage.eINSTANCE.getGame_Frames());
 		Mockito.doReturn(observeList).when(emfFormsDatabinding)
 			.getObservableList(Matchers.any(VDomainModelReference.class), Matchers.any(EObject.class));
+		return observeList;
+	}
 
+	@Test
+	public void testButtonRemovedOnReadOnly()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final IObservableList<?> observeList = createBasicDomain();
+		final MultiAttributeSWTRenderer renderer = createRenderer();
+		Mockito.doReturn(true).when(vElement).isEffectivelyReadonly();
+		when(vElement.isEffectivelyEnabled()).thenReturn(true);
+		/* setup rendering */
+		final SWTGridDescription gridDescription = renderer.getGridDescription(null);
+		final SWTGridCell lastGridCell = gridDescription.getGrid().get(gridDescription.getGrid().size() - 1);
+
+		/* render */
+		final Control control = renderer.render(lastGridCell, shell);
+		// check control visibility (getVisible rather than isVisible as the shell is not visible itself)
+		assertTrue("Control should be visible", control.getVisible()); //$NON-NLS-1$
+		assertTrue("Control may still be enabled when read-only", control.isEnabled());//$NON-NLS-1$
+		final Button upButton = SWTTestUtil.findControl(control, 0, Button.class);
+		assertFalse("Up button shall not be visible when read-only", upButton.getVisible());//$NON-NLS-1$
+
+		/* select an element in list */
+		renderer.getTableViewer().setSelection(new StructuredSelection(observeList.get(0)), true);
+		SWTTestUtil.waitForUIThread();
+
+		/* assert */
+		assertFalse("Up button shall not be visible when read-only", upButton.getVisible());//$NON-NLS-1$
+
+		/* act */
+		renderer.getTableViewer().setSelection(StructuredSelection.EMPTY);
+		SWTTestUtil.waitForUIThread();
+
+		/* assert */
+		assertFalse("Up button shall not be visible when read-only", upButton.getVisible());//$NON-NLS-1$
+
+	}
+
+	@Test
+	public void testButtonsDeactivateOnDisable()
+		throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
+		final IObservableList<?> observeList = createBasicDomain();
+		// set to disable
+		Mockito.doReturn(false).when(vElement).isEffectivelyEnabled();
 		final MultiAttributeSWTRenderer renderer = createRenderer();
 
 		/* setup rendering */
@@ -399,15 +516,15 @@
 		renderer.getTableViewer().setSelection(new StructuredSelection(observeList.get(0)), true);
 		SWTTestUtil.waitForUIThread();
 
-		/* assert */
-		assertTrue(upButton.getEnabled());
+		/* up should still be disabled */
+		assertFalse("button is enabled even if VElement is not enabled", upButton.getEnabled());//$NON-NLS-1$
 
 		/* act */
 		renderer.getTableViewer().setSelection(StructuredSelection.EMPTY);
 		SWTTestUtil.waitForUIThread();
 
 		/* assert */
-		assertFalse(upButton.getEnabled());
+		assertFalse("button is enabled even if VElement is not enabled", upButton.getEnabled());//$NON-NLS-1$
 	}
 
 	@Test
@@ -455,14 +572,70 @@
 		final Control control = renderer.render(lastGridCell, shell);
 
 		/* assert */
-		assertEquals("UUID#up", SWTTestUtil.findControl(control, 0, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_UP, SWTTestUtil.findControl(control, 0, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals("UUID#down", SWTTestUtil.findControl(control, 1, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_DOWN, SWTTestUtil.findControl(control, 1, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals("UUID#add", SWTTestUtil.findControl(control, 2, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_ADD, SWTTestUtil.findControl(control, 2, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
-		assertEquals("UUID#remove", SWTTestUtil.findControl(control, 3, Button.class) //$NON-NLS-1$
+		assertEquals(UUID_REMOVE, SWTTestUtil.findControl(control, 3, Button.class)
 			.getData(SWTDataElementIdHelper.ELEMENT_ID_KEY));
 	}
 
+	/**
+	 * Verify that when adding an enum value, the default value of the <em>attribute</em> is
+	 * preferred over the default literal of the enumeration (which is always the first literal),
+	 * if the attribute specifies a default.
+	 */
+	@Test
+	@SuppressWarnings("nls")
+	public void addEnumValue()
+		throws DatabindingFailedException, NoRendererFoundException, NoPropertyDescriptorFoundExeption {
+
+		final EPackage fakePackage = EcoreFactory.eINSTANCE.createEPackage();
+		final EClass fakeClass = EcoreFactory.eINSTANCE.createEClass();
+		fakePackage.getEClassifiers().add(fakeClass);
+		final EAttribute allowedTypes = EcoreFactory.eINSTANCE.createEAttribute();
+		allowedTypes.setName("allowedTypes");
+		allowedTypes.setUpperBound(TournamentType.values().length);
+		allowedTypes.setEType(BowlingPackage.Literals.TOURNAMENT_TYPE);
+		allowedTypes.setDefaultValue(TournamentType.AMATEUR); // Not the type's intrinsic default
+		fakeClass.getEStructuralFeatures().add(allowedTypes);
+
+		/* setup domain */
+		final EObject object = EcoreUtil.create(fakeClass);
+		createEditingDomain(object);
+
+		/* setup classes */
+		@SuppressWarnings("unchecked")
+		final IObservableList<TournamentType> list = EMFObservables.observeList(
+			realm,
+			object,
+			allowedTypes);
+		when(emfFormsDatabinding.getObservableList(Matchers.any(VDomainModelReference.class),
+			Matchers.any(EObject.class)))
+				.thenReturn(list);
+		when(viewContext.getDomainModel()).thenReturn(object);
+
+		/* setup rendering */
+		final MultiAttributeSWTRenderer renderer = createRenderer();
+		final SWTGridDescription gridDescription = renderer.getGridDescription(null);
+		final SWTGridCell lastGridCell = gridDescription.getGrid().get(gridDescription.getGrid().size() - 1);
+
+		/* render */
+		final Control control = renderer.render(lastGridCell, shell);
+		final Table table = SWTTestUtil.findControl(control, 0, Table.class);
+		final Button addButton = SWTTestUtil.findControl(control, 2, Button.class);
+
+		/* act */
+		table.setSelection(2);
+		SWTTestUtil.waitForUIThread();
+
+		SWTTestUtil.clickButton(addButton);
+		SWTTestUtil.waitForUIThread();
+
+		/* verify the added value */
+		assertThat("Wrong default value", list, hasItem(TournamentType.AMATEUR));
+	}
+
 }
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/META-INF/MANIFEST.MF
index 5427b27..a3fef5e 100644
--- a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Text Control with Autocomplete Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.control.text.autocomplete.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.control.text.autocomplete;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.swt.control.text.autocomplete.tests;version="1.19.0";x-internal:=true
+Fragment-Host: org.eclipse.emfforms.swt.control.text.autocomplete;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.control.text.autocomplete.renderer;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.swt.control.text.autocomplete.tests;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emfforms.core.services.databinding.testmodel;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.control.text.autocomplete.tests
diff --git a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/pom.xml b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/pom.xml
index 9f30dda..7443065 100644
--- a/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.control.text.autocomplete.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.control.text.autocomplete.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.controlgrid.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.controlgrid.test/META-INF/MANIFEST.MF
index 5099825..31dfd8f 100644
--- a/tests/org.eclipse.emfforms.swt.controlgrid.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.controlgrid.test/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Control Grid SWT Renderer Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.controlgrid.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.controlgrid;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.19.0"
+Fragment-Host: org.eclipse.emfforms.swt.controlgrid;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.spi.swt.controlgrid.renderer;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.controlgrid.test
diff --git a/tests/org.eclipse.emfforms.swt.controlgrid.test/pom.xml b/tests/org.eclipse.emfforms.swt.controlgrid.test/pom.xml
index 446ee41..455f7ae 100644
--- a/tests/org.eclipse.emfforms.swt.controlgrid.test/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.controlgrid.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.controlgrid.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 	
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/META-INF/MANIFEST.MF
index e0e211c..e00e65c 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/META-INF/MANIFEST.MF
@@ -2,22 +2,22 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: SWT Core DI Extension Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di.extension.tests;singleton:=true
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Fragment-Host: org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.internal.swt.core.di.extension.tests;version="1.19.0";x-internal:=true
-Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.swt.core.di.tests;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
-  org.junit;bundle-version="[4.11.0,5.0.0)"
+Fragment-Host: org.eclipse.emfforms.swt.core.di.extension;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.extension;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.internal.swt.core.di.extension.tests;version="1.20.0";x-internal:=true
+Require-Bundle: org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.swt.core.di.tests;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.junit;bundle-version="[4.11.0,5.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.core.di.extension.tests
 Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/pom.xml b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/pom.xml
index b391430..b027ddb 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.extension.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.core.di.extension.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.core.di.extension.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.core.di.tests/META-INF/MANIFEST.MF
index d6ffb9e..5833087 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/META-INF/MANIFEST.MF
@@ -2,30 +2,30 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core DI Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.di.tests
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.internal.swt.core.di.tests;version="1.19.0";x-friends:="org.eclipse.emfforms.swt.core.di.extension.tests",
-  org.eclipse.emfforms.spi.swt.core.di;version="1.19.0"
-Require-Bundle: org.eclipse.emfforms.swt.core.di;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services;bundle-version="[1.19.0,1.20.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.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
-  org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
-  org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core.di.tests;version="1.20.0";x-friends:="org.eclipse.emfforms.swt.core.di.extension.tests",
+ org.eclipse.emfforms.spi.swt.core.di;version="1.20.0"
+Require-Bundle: org.eclipse.emfforms.swt.core.di;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.core.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services;bundle-version="[1.20.0,1.21.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.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.10.0,3.0.0)",
+ org.eclipse.emf.databinding;bundle-version="[1.3.0,2.0.0)",
+ org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.e4.core.contexts;bundle-version="[1.3.100,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Service-Component: OSGI-INF/testControlSWTRendererServiceDI.xml
 Bundle-ActivationPolicy: lazy
 Import-Package: javax.inject;version="1.0.0",
-  org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.19.0,1.20.0)",
-  org.eclipse.swt;version="0.0.0",
-  org.eclipse.swt.widgets;version="0.0.0",
-  org.osgi.framework;version="1.8.0"
+ org.eclipse.emf.ecp.edit.spi.swt.util;version="[1.20.0,1.21.0)",
+ org.eclipse.swt;version="0.0.0",
+ org.eclipse.swt.widgets;version="0.0.0",
+ org.osgi.framework;version="1.8.0"
 Automatic-Module-Name: org.eclipse.emfforms.swt.core.di.tests
diff --git a/tests/org.eclipse.emfforms.swt.core.di.tests/pom.xml b/tests/org.eclipse.emfforms.swt.core.di.tests/pom.xml
index 65f22fa..4bd565e 100644
--- a/tests/org.eclipse.emfforms.swt.core.di.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.core.di.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.core.di.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.core.tests/META-INF/MANIFEST.MF
index 2c4761f..5126d12 100644
--- a/tests/org.eclipse.emfforms.swt.core.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.core.tests/META-INF/MANIFEST.MF
@@ -2,16 +2,16 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms SWT Core Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.core.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.swt.core;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.spi.swt.core;version="1.19.0",
-  org.eclipse.emfforms.swt.core.tests;version="1.19.0";x-internal:=true
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.swt.core;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.core;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.core;version="1.20.0",
+ org.eclipse.emfforms.swt.core.tests;version="1.20.0";x-internal:=true
 Require-Bundle: 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)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.19.0,1.20.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)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.structuralchange;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.core.tests
 Import-Package: org.osgi.framework;version="[1.6.0,2.0.0)"
diff --git a/tests/org.eclipse.emfforms.swt.core.tests/pom.xml b/tests/org.eclipse.emfforms.swt.core.tests/pom.xml
index af035f0..d7f3971 100644
--- a/tests/org.eclipse.emfforms.swt.core.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.core.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.core.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.table.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.table.test/META-INF/MANIFEST.MF
index 285e16a..e0d1569 100644
--- a/tests/org.eclipse.emfforms.swt.table.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.table.test/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Table Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.table.test
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.swt.table;bundle-version="[1.19.0,1.20.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.swt.table;bundle-version="[1.20.0,1.21.0)"
+Export-Package: org.eclipse.emfforms.internal.swt.table.action;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.spi.swt.table.action;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.swt.table.test;version="1.20.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.12.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)",
- org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)"
-Export-Package: org.eclipse.emfforms.internal.swt.table.action;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.spi.swt.table.action;version="1.19.0";x-internal:=true,
- org.eclipse.emfforms.swt.table.test;version="1.19.0";x-internal:=true
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.table.test
diff --git a/tests/org.eclipse.emfforms.swt.table.test/pom.xml b/tests/org.eclipse.emfforms.swt.table.test/pom.xml
index de55cd1..4cec682 100644
--- a/tests/org.eclipse.emfforms.swt.table.test/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.table.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.table.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.table.test/src/org/eclipse/emfforms/internal/swt/table/action/KeyBindingManager_PTest.java b/tests/org.eclipse.emfforms.swt.table.test/src/org/eclipse/emfforms/internal/swt/table/action/KeyBindingManager_PTest.java
index c0c25c6..9f39484 100644
--- a/tests/org.eclipse.emfforms.swt.table.test/src/org/eclipse/emfforms/internal/swt/table/action/KeyBindingManager_PTest.java
+++ b/tests/org.eclipse.emfforms.swt.table.test/src/org/eclipse/emfforms/internal/swt/table/action/KeyBindingManager_PTest.java
@@ -69,6 +69,7 @@
 
 		shell = new Shell(Display.getDefault());
 		shell.setLayout(new FillLayout());
+		shell.open();
 
 		keyBindingManager = new KeyBindingManager();
 	}
diff --git a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/META-INF/MANIFEST.MF
index 87f2ab4..a8289a4 100644
--- a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: TreeMasterDetail Tests
 Bundle-SymbolicName: org.eclipse.emfforms.swt.treemasterdetail.test
-Bundle-Version: 1.19.0.qualifier
+Bundle-Version: 1.20.0.qualifier
 Bundle-Vendor: Eclipse Modeling Project
-Export-Package: org.eclipse.emfforms.swt.treemasterdetail.test;version="1.19.0"
+Export-Package: org.eclipse.emfforms.swt.treemasterdetail.test;version="1.20.0"
 Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
-  org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
-  org.eclipse.jface;bundle-version="[3.13.0,4.0.0)",
-  org.eclipse.emf.ecp.view.template.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.swtbot.swt.finder;bundle-version="[2.6.0,3.0.0)",
-  org.eclipse.swtbot.junit4_x;bundle-version="[2.6.0,3.0.0)",
-  org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.apache.log4j;bundle-version="[1.0.0,2.0.0)",
-  org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.19.0,1.20.0)",
-  org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
+ org.eclipse.emfforms.swt.treemasterdetail;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.9.0,2.0.0)",
+ org.eclipse.jface;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.emf.ecp.view.template.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.swtbot.swt.finder;bundle-version="[2.6.0,3.0.0)",
+ org.eclipse.swtbot.junit4_x;bundle-version="[2.6.0,3.0.0)",
+ org.eclipse.emf.ecp.view.test.common.swt;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.apache.log4j;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.20.0,1.21.0)",
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.swt.treemasterdetail.test
 Import-Package: org.osgi.framework;version="0.0.0"
diff --git a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/pom.xml b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/pom.xml
index c31e7d3..d556ace 100644
--- a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/pom.xml
+++ b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.swt.treemasterdetail.test</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/src/org/eclipse/emfforms/swt/treemasterdetail/test/TreeMasterDetail_PTest.java b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/src/org/eclipse/emfforms/swt/treemasterdetail/test/TreeMasterDetail_PTest.java
index f8089a9..ba2cd24 100644
--- a/tests/org.eclipse.emfforms.swt.treemasterdetail.test/src/org/eclipse/emfforms/swt/treemasterdetail/test/TreeMasterDetail_PTest.java
+++ b/tests/org.eclipse.emfforms.swt.treemasterdetail.test/src/org/eclipse/emfforms/swt/treemasterdetail/test/TreeMasterDetail_PTest.java
@@ -57,6 +57,7 @@
 import org.eclipse.jface.bindings.keys.KeyStroke;
 import org.eclipse.jface.bindings.keys.ParseException;
 import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.ILabelDecorator;
 import org.eclipse.jface.viewers.ILabelProviderListener;
 import org.eclipse.swt.SWT;
@@ -71,6 +72,7 @@
 import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
 import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
 import org.eclipse.swtbot.swt.finder.results.Result;
+import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
 import org.eclipse.swtbot.swt.finder.waits.ICondition;
 import org.junit.After;
 import org.junit.Before;
@@ -107,7 +109,7 @@
 			@Override
 			public Shell run() {
 				final Shell shell = new Shell(display);
-				GridDataFactory.fillDefaults().applyTo(shell);
+				GridLayoutFactory.fillDefaults().applyTo(shell);
 				return shell;
 			}
 		});
@@ -476,45 +478,70 @@
 				shell.open();
 			}
 		});
+
 		SWTTestUtil.waitForUIThread();
 		final String text = bot.text().getText();
 		assertEquals(ALICE, text);
 		assertEquals("Player Alice", bot.tree().selection().get(0, 0)); //$NON-NLS-1$
 
 		/* press down, selection expected to change */
-		Display.getDefault().syncExec(new Runnable() {
-			@Override
-			public void run() {
-				try {
-					bot.tree().pressShortcut(KeyStroke.getInstance(IKeyLookup.ARROW_DOWN_NAME));
-				} catch (final ParseException ex) {
-					throw new RuntimeException(ex);
-				}
-			}
-		});
+		try {
+			bot.tree().pressShortcut(KeyStroke.getInstance(IKeyLookup.ARROW_DOWN_NAME));
+		} catch (final ParseException ex) {
+			throw new RuntimeException(ex);
+		}
 
 		/* detail unchanged after down, but selection changed already */
 		SWTTestUtil.waitForUIThread();
 		assertEquals(text, bot.text().getText());
-		assertEquals("Player Bob", bot.tree().selection().get(0, 0)); //$NON-NLS-1$
+		bot.waitUntil(new DefaultCondition() {
+
+			@Override
+			public boolean test() throws Exception {
+				return "Player Bob".equals(bot.tree().selection().get(0, 0));
+			}
+
+			@Override
+			public String getFailureMessage() {
+				return "The selection did not update to Bob!";
+			}
+		}, 10000, 100);
 
 		/* press enter */
-		Display.getDefault().syncExec(new Runnable() {
-			@Override
-			public void run() {
-				try {
-					bot.tree().pressShortcut(KeyStroke.getInstance(IKeyLookup.ENTER_NAME));
-				} catch (final ParseException ex) {
-					throw new RuntimeException(ex);
-				}
-			}
-		});
+		try {
+			bot.tree().pressShortcut(KeyStroke.getInstance(IKeyLookup.ENTER_NAME));
+		} catch (final ParseException ex) {
+			throw new RuntimeException(ex);
+		}
 
 		/* enter should update immediately, no delay expected */
-		SWTTestUtil.waitForUIThread();
-		assertEquals(BOB, bot.text().getText());
+		bot.waitUntil(new DefaultCondition() {
+
+			@Override
+			public boolean test() throws Exception {
+				SWTTestUtil.waitForUIThread();
+				return BOB.equals(bot.text().getText());
+			}
+
+			@Override
+			public String getFailureMessage() {
+				return "The detail did not update to show Bob!";
+			}
+		}, 10000, 100);
 		/* focus change expected */
-		assertSame(bot.text().widget, bot.getFocusedWidget());
+		bot.waitUntil(new DefaultCondition() {
+
+			@Override
+			public boolean test() throws Exception {
+				SWTTestUtil.waitForUIThread();
+				return bot.text().widget == bot.getFocusedWidget();
+			}
+
+			@Override
+			public String getFailureMessage() {
+				return "The focus did not switch to Text Bob!";
+			}
+		}, 10000, 100);
 	}
 
 	@Test
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emfforms.view.model.localization.tests/META-INF/MANIFEST.MF
index df2a740..6b8f498 100644
--- a/tests/org.eclipse.emfforms.view.model.localization.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/META-INF/MANIFEST.MF
@@ -2,15 +2,15 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: EMFForms View Model Localization Tests
 Bundle-SymbolicName: org.eclipse.emfforms.view.model.localization.tests
-Bundle-Version: 1.19.0.qualifier
-Fragment-Host: org.eclipse.emfforms.view.model.localization;bundle-version="[1.19.0,1.20.0)"
+Bundle-Version: 1.20.0.qualifier
+Fragment-Host: org.eclipse.emfforms.view.model.localization;bundle-version="[1.20.0,1.21.0)"
 Bundle-Localization: OSGI-INF/l10n/bundle
-Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.19.0";x-internal:=true,
-  org.eclipse.emfforms.view.model.localization.tests;version="1.19.0"
+Export-Package: org.eclipse.emfforms.internal.view.model.localization;version="1.20.0";x-internal:=true,
+ org.eclipse.emfforms.view.model.localization.tests;version="1.20.0"
 Require-Bundle: 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.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.equinox.ds;bundle-version="[1.4.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.view.vertical.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.equinox.ds;bundle-version="[1.4.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.view.model.localization.tests
-Import-Package: org.eclipse.emfforms.spi.localization;version="[1.19.0,1.20.0)"
+Import-Package: org.eclipse.emfforms.spi.localization;version="[1.20.0,1.21.0)"
diff --git a/tests/org.eclipse.emfforms.view.model.localization.tests/pom.xml b/tests/org.eclipse.emfforms.view.model.localization.tests/pom.xml
index 48dee10..72b7d4b 100644
--- a/tests/org.eclipse.emfforms.view.model.localization.tests/pom.xml
+++ b/tests/org.eclipse.emfforms.view.model.localization.tests/pom.xml
@@ -6,12 +6,12 @@
 	<parent>
 		<groupId>org.eclipse.emf.ecp</groupId>
 		<artifactId>ecp-tests-parent</artifactId>
-		<version>1.19.0-SNAPSHOT</version>
+		<version>1.20.0-SNAPSHOT</version>
 		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
 	</parent>
 	<groupId>org.eclipse.emf.ecp</groupId>
 	<artifactId>org.eclipse.emfforms.view.model.localization.tests</artifactId>
-	<version>1.19.0-SNAPSHOT</version>
+	<version>1.20.0-SNAPSHOT</version>
 	<packaging>eclipse-test-plugin</packaging>
 
 	<build>
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/META-INF/MANIFEST.MF b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/META-INF/MANIFEST.MF
index b95828f..2ec2337 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/META-INF/MANIFEST.MF
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests/META-INF/MANIFEST.MF
@@ -6,8 +6,8 @@
 Bundle-Vendor: Eclipse Modeling Project
 Fragment-Host: org.eclipse.emfforms.spreadsheet.core.renderer.categorization;bundle-version="[1.0.0,1.1.0)"
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer.categorization;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests;version="1.0.0";x-internal:=true
+ org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests;version="1.0.0";x-internal:=true
 Require-Bundle: 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.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.renderer.categorization.tests
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/META-INF/MANIFEST.MF b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/META-INF/MANIFEST.MF
index bdbac3a..42793ae 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/META-INF/MANIFEST.MF
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.renderer.table.tests/META-INF/MANIFEST.MF
@@ -7,14 +7,14 @@
 Fragment-Host: org.eclipse.emfforms.spreadsheet.core.renderer.table;bundle-version="[1.0.0,1.1.0)"
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core.renderer.table;version="1.0.0"
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.template.service;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.19.0,1.20.0)"
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emfforms.core.services.databinding.index;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.databinding.featurepath;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.template.service;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.default;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.table;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.core.services.domainexpander.index;bundle-version="[1.20.0,1.21.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.renderer.table.tests
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/META-INF/MANIFEST.MF b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/META-INF/MANIFEST.MF
index c379007..90498b7 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/META-INF/MANIFEST.MF
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.core.tests/META-INF/MANIFEST.MF
@@ -5,14 +5,14 @@
 Bundle-Version: 1.0.0.qualifier
 Fragment-Host: org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)"
 Export-Package: org.eclipse.emfforms.internal.spreadsheet.core;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.internal.spreadsheet.core.converter;version="1.0.0";x-internal:=true,
-  org.eclipse.emfforms.spreadsheet.core.tests;version="1.0.0";x-internal:=true
+ org.eclipse.emfforms.internal.spreadsheet.core.converter;version="1.0.0";x-internal:=true,
+ org.eclipse.emfforms.spreadsheet.core.tests;version="1.0.0";x-internal:=true
 Require-Bundle: 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.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.5.0,2.0.0)"
+ org.mockito.mockito-core-hamcrest-modified;bundle-version="[1.9.5,2.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model.provider.generator;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.5.0,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.core.tests
diff --git a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/META-INF/MANIFEST.MF b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/META-INF/MANIFEST.MF
index 1a7da4a..f571da7 100644
--- a/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/META-INF/MANIFEST.MF
+++ b/tests/spreadsheet/org.eclipse.emfforms.spreadsheet.integrationtest/META-INF/MANIFEST.MF
@@ -6,21 +6,21 @@
 Bundle-Vendor: Eclipse Modeling Project
 Export-Package: org.eclipse.emfforms.spreadsheet.integrationtest;version="1.0.0";x-internal:=true
 Require-Bundle: org.junit;bundle-version="[4.11.0,5.0.0)",
-  org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
-  org.eclipse.emf.ecore.xmi;bundle-version="[2.11.0,3.0.0)",
-  org.eclipse.emf.ecp.test.common;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.context;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.ecp.ui.view;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.19.0,1.20.0)",
-  org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.5.0,2.0.0)",
-  org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)",
-  org.eclipse.emfforms.spreadsheet.core.renderer.categorization;bundle-version="[1.0.0,1.1.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.11.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.11.0,3.0.0)",
+ org.eclipse.emf.ecp.test.common;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.context;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.view.categorization.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.ecp.ui.view;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emfforms.spreadsheet.core;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emf.ecp.makeithappen.model;bundle-version="[1.20.0,1.21.0)",
+ org.eclipse.emf.emfstore.examplemodel;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emf.emfstore.examplemodel.edit;bundle-version="[1.5.0,2.0.0)",
+ org.eclipse.emfforms.spreadsheet.core.error.model;bundle-version="[1.0.0,1.1.0)",
+ org.eclipse.emfforms.spreadsheet.core.renderer.categorization;bundle-version="[1.0.0,1.1.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: org.eclipse.emfforms.spreadsheet.integrationtest
 Import-Package: org.eclipse.core.runtime;version="3.5.0",
-  org.osgi.framework;version="0.0.0"
+ org.osgi.framework;version="0.0.0"
 Bundle-ActivationPolicy: lazy